Blame SOURCES/tuned-2.14.0-scheduler-isolated-cores-cgroups-fix.patch

94f7b1
From daf02c380515b42db06d9f743070af5ab248a414 Mon Sep 17 00:00:00 2001
94f7b1
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
94f7b1
Date: Fri, 3 Jul 2020 12:17:03 +0200
94f7b1
Subject: [PATCH] scheduler: fix isolated_cores to work with cgroups
94f7b1
MIME-Version: 1.0
94f7b1
Content-Type: text/plain; charset=UTF-8
94f7b1
Content-Transfer-Encoding: 8bit
94f7b1
94f7b1
It seems cpuset.cpus needs to be initialized before writing to tasks.
94f7b1
94f7b1
Related: rhbz#1784648
94f7b1
94f7b1
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
94f7b1
---
94f7b1
 tuned/plugins/plugin_scheduler.py | 5 +++++
94f7b1
 1 file changed, 5 insertions(+)
94f7b1
94f7b1
diff --git a/tuned/plugins/plugin_scheduler.py b/tuned/plugins/plugin_scheduler.py
94f7b1
index 745ee4a..9ad9f54 100644
94f7b1
--- a/tuned/plugins/plugin_scheduler.py
94f7b1
+++ b/tuned/plugins/plugin_scheduler.py
94f7b1
@@ -106,6 +106,7 @@ class SchedulerPlugin(base.Plugin):
94f7b1
 		# calculated by isolated_cores setter
94f7b1
 		self._affinity = None
94f7b1
 
94f7b1
+		self._cgroup_affinity_initialized = False
94f7b1
 		self._cgroup = None
94f7b1
 		self._cgroups = collections.OrderedDict([(self._sanitize_cgroup_path(option[7:]), self._variables.expand(affinity))
94f7b1
 			for option, affinity in instance.options.items() if option[:7] == "cgroup." and len(option) > 7])
94f7b1
@@ -478,11 +479,14 @@ class SchedulerPlugin(base.Plugin):
94f7b1
 			log.error("Unable to set affinity '%s' for cgroup '%s'" % (affinity, cgroup))
94f7b1
 
94f7b1
 	def _cgroup_set_affinity(self):
94f7b1
+		if self._cgroup_affinity_initialized:
94f7b1
+			return
94f7b1
 		log.debug("Setting cgroups affinities")
94f7b1
 		if self._affinity is not None and self._cgroup is not None and not self._cgroup in self._cgroups:
94f7b1
 			self._cgroup_set_affinity_one(self._cgroup, self._affinity, backup = True)
94f7b1
 		for cg in self._cgroups.items():
94f7b1
 			self._cgroup_set_affinity_one(cg[0], cg[1], backup = True)
94f7b1
+		self._cgroup_affinity_initialized = True
94f7b1
 
94f7b1
 	def _cgroup_restore_affinity(self):
94f7b1
 		log.debug("Restoring cgroups affinities")
94f7b1
@@ -920,6 +924,7 @@ class SchedulerPlugin(base.Plugin):
94f7b1
 			return self._verify_all_irq_affinity(affinity, ignore_missing)
94f7b1
 		elif enabling:
94f7b1
 			if self._cgroup:
94f7b1
+				self._cgroup_set_affinity()
94f7b1
 				ps_affinity = "cgroup.%s" % self._cgroup
94f7b1
 			else:
94f7b1
 				ps_affinity = affinity
94f7b1
-- 
94f7b1
2.25.4
94f7b1