tuna/SOURCES/tuna-Fix-tuna-include-optio...

52 lines
1.9 KiB
Diff

From cd9e707b23980ed568aeddac6eaa2125b651c6cc Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 3 Mar 2021 10:45:28 -0500
Subject: [PATCH] tuna: Fix tuna --include option breakage
The change to remove the dependency on python-schedutils
broke the --include function.
get_affinity(pid) from python-schedutils returned a list
os.sched_getaffinity(pid) returns a set
In many cases they can be interchanged, but not with the '+' operation
Fix this by changing affinity to a list before concatenation
Reported-by: Mark Simmons <msimmons@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna/tuna.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tuna/tuna.py b/tuna/tuna.py
index e5122dac1081..614a8250b054 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -431,9 +431,9 @@ def include_cpus(cpus, nr_cpus):
if err.args[0] == errno.ESRCH:
continue
raise err
- if set(affinity).intersection(set(cpus)) != set(cpus):
+ if affinity.intersection(set(cpus)) != set(cpus):
previous_pid_affinities[pid] = copy.copy(affinity)
- affinity = list(set(affinity + cpus))
+ affinity = list(affinity) + cpus
try:
os.sched_setaffinity(pid, affinity)
except OSError as err:
@@ -453,9 +453,9 @@ def include_cpus(cpus, nr_cpus):
if err.args[0] == errno.ESRCH:
continue
raise err
- if set(affinity).intersection(set(cpus)) != set(cpus):
+ if affinity.intersection(set(cpus)) != set(cpus):
previous_pid_affinities[tid] = copy.copy(affinity)
- affinity = list(set(affinity + cpus))
+ affinity = list(affinity) + cpus
try:
os.sched_setaffinity(tid, affinity)
except OSError as err:
--
2.26.2