From a35fcc8b3fc340a6b874440b2a87e155c807ece5 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 12 Dec 2024 02:54:13 +0000 Subject: automatic import of systemd --- ...set.cpus-mems-of-machine.slice-to-all-by-.patch | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch (limited to 'set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch') diff --git a/set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch b/set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch new file mode 100644 index 0000000..da49b05 --- /dev/null +++ b/set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch @@ -0,0 +1,46 @@ +From 14b69596b0bff64f7482d93ea3f043520a716921 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Thu, 8 Jun 2023 20:02:50 +0800 +Subject: [PATCH] set the cpuset.cpus/mems of machine.slice to all by default + This is necessary after merging core-cgroup-support-cpuset.patch. + +When creating a vm, libvirt will issue a dbus method_call to +systemd-machined. systemd-machined will start transient unit +usually named xxx.scope with Delegate=1 set after receiving +the method_call. If Delegate=1 is set, systemd will create +machine.slice in /sys/fs/cgroup for every cgroup subsystem, this +includes cpuset. cpuset is different, you can't migrate processes +to the created directory unless you have set proper cpuset.cpus +and cpuset.mems. + +Without this patch, libvirt sees machine.slice, it won't check +if cpuset.cpus or cpuset.mems is valid, and just migrate the vm +process to machine.slice. This action will fail because core-cgroup +-support-cpuset.patch only supports create the machine.slice +directory when Delegate=1 is set, but won't set cpuset.cpus +and cpuset.mems automatically. + +Now we have this patch, it will make systemd automatically set +cpuset.cpus and cpuset.mems according to /sys/fs/cgroup/cpuset/{ +cpuset.cpus, cpuset.mems}. Then libvirt can migrate vm processes +freely. +--- + units/machine.slice | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/units/machine.slice b/units/machine.slice +index 501d353..8d87851 100644 +--- a/units/machine.slice ++++ b/units/machine.slice +@@ -11,3 +11,8 @@ + Description=Virtual Machine and Container Slice + Documentation=man:systemd.special(7) + Before=slices.target ++ ++[Slice] ++CPUSetCpus=all ++CPUSetMems=all ++CPUSetCloneChildren=1 +-- +2.33.0 + -- cgit v1.2.3