From dfa7c13d53bd90d8211806a91246647c57f0e4a8 Mon Sep 17 00:00:00 2001 From: Thomas Moschny Date: Mon, 9 Sep 2019 09:09:42 +0200 Subject: [PATCH] Add patches to fix cgroups cpuset initialization (rhbz#1750031). --- lxc-3.0.4-cgroups-fix-cpuset-init.patch | 60 +++++++++++++++++++++++++ lxc.spec | 8 +++- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 lxc-3.0.4-cgroups-fix-cpuset-init.patch diff --git a/lxc-3.0.4-cgroups-fix-cpuset-init.patch b/lxc-3.0.4-cgroups-fix-cpuset-init.patch new file mode 100644 index 0000000..4aee19a --- /dev/null +++ b/lxc-3.0.4-cgroups-fix-cpuset-init.patch @@ -0,0 +1,60 @@ +From b9071a6dab43631d65ccf7cbb9c6f39769c86f09 Mon Sep 17 00:00:00 2001 +From: Christian Brauner +Date: Wed, 3 Jul 2019 17:57:48 +0200 +Subject: [PATCH] cgroups: hande cpuset initialization race + +Signed-off-by: Christian Brauner +--- + src/lxc/cgroups/cgfsng.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c +index 95a87d5aa9..a6e2d51b11 100644 +--- a/src/lxc/cgroups/cgfsng.c ++++ b/src/lxc/cgroups/cgfsng.c +@@ -612,10 +612,8 @@ static bool cg_legacy_handle_cpuset_hierarchy(struct hierarchy *h, char *cgname) + } + + /* Already set for us by someone else. */ +- if (v == '1') { +- DEBUG("\"cgroup.clone_children\" was already set to \"1\""); +- return true; +- } ++ if (v == '1') ++ TRACE("\"cgroup.clone_children\" was already set to \"1\""); + + /* copy parent's settings */ + if (!copy_parent_file(cgpath, "cpuset.mems")) { +From a29e5dc592481e7fc76a6c97ee62b4f9ef6f8b0e Mon Sep 17 00:00:00 2001 +From: Christian Brauner +Date: Sun, 28 Jul 2019 23:13:26 +0200 +Subject: [PATCH] cgroups: initialize cpuset properly + +Closes #3108. +Signed-off-by: Christian Brauner +--- + src/lxc/cgroups/cgfsng.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c +index a6e2d51b11..f341f06332 100644 +--- a/src/lxc/cgroups/cgfsng.c ++++ b/src/lxc/cgroups/cgfsng.c +@@ -496,12 +496,12 @@ static bool cg_legacy_filter_and_set_cpus(char *path, bool am_initialized) + } + + if (!flipped_bit) { +- DEBUG("No isolated or offline cpus present in cpuset"); +- return true; ++ cpulist = lxc_cpumask_to_cpulist(possmask, maxposs); ++ TRACE("No isolated or offline cpus present in cpuset"); ++ } else { ++ cpulist = move_ptr(posscpus); ++ TRACE("Removed isolated or offline cpus from cpuset"); + } +- DEBUG("Removed isolated or offline cpus from cpuset"); +- +- cpulist = lxc_cpumask_to_cpulist(possmask, maxposs); + if (!cpulist) { + ERROR("Failed to create cpu list"); + return false; diff --git a/lxc.spec b/lxc.spec index 48f6e6e..91cf1e5 100644 --- a/lxc.spec +++ b/lxc.spec @@ -11,13 +11,16 @@ Name: lxc Version: 3.0.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Linux Resource Containers License: LGPLv2+ and GPLv2 URL: http://linuxcontainers.org/lxc Source0: http://linuxcontainers.org/downloads/%{name}-%{version}.tar.gz Patch0: lxc-2.0.7-fix-init.patch Patch1: lxc-2.0.6-fix-lxc-net.patch +# upstream commits b9071a6 and a29e5dc +# see also https://github.com/lxc/lxc/issues/3118 +Patch2: lxc-3.0.4-cgroups-fix-cpuset-init.patch BuildRequires: docbook2X BuildRequires: doxygen BuildRequires: kernel-headers @@ -245,6 +248,9 @@ make check %changelog +* Mon Sep 9 2019 Thomas Moschny - 3.0.4-2 +- Add patches to fix cgroups cpuset initialization (rhbz#1750031). + * Fri Aug 16 2019 Thomas Moschny - 3.0.4-1 - Update to 3.0.4.