summaryrefslogtreecommitdiff
path: root/set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch')
-rw-r--r--set-the-cpuset.cpus-mems-of-machine.slice-to-all-by-.patch46
1 files changed, 46 insertions, 0 deletions
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 <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
+