diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2008-09-15 11:26:44 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2008-09-15 11:26:44 -0300 |
commit | b39fb25b5bf407513c3dadf0ce0a2401a1312d3e (patch) | |
tree | ff305812650454a6dc7d1e975aa94569c1811b13 | |
parent | 8e09a4fed166da73fc00dc3e751292dd747fedf7 (diff) | |
download | tuna-b39fb25b5bf407513c3dadf0ce0a2401a1312d3e.tar.gz |
tuna: turn include_cpu into include_cpus
Taking a list of cpus, as isolate_cpus.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rwxr-xr-x | tuna-cmd.py | 3 | ||||
-rwxr-xr-x | tuna/tuna.py | 14 | ||||
-rw-r--r-- | tuna/tuna_gui.py | 2 |
3 files changed, 9 insertions, 10 deletions
diff --git a/tuna-cmd.py b/tuna-cmd.py index d5dea91..fd805c4 100755 --- a/tuna-cmd.py +++ b/tuna-cmd.py @@ -121,8 +121,7 @@ def main(): if not cpus: print "tuna: --include requires a cpu list!" sys.exit(2) - for cpu in cpus: - tuna.include_cpu(cpu, get_nr_cpus()) + tuna.include_cpus(cpus, get_nr_cpus()) elif o in ("-p", "--priority"): tuna.threads_set_priority(threads, a, affect_children) elif o in ("-m", "--move"): diff --git a/tuna/tuna.py b/tuna/tuna.py index c021873..6de6ec8 100755 --- a/tuna/tuna.py +++ b/tuna/tuna.py @@ -232,7 +232,7 @@ def isolate_cpus(cpus, nr_cpus): return (previous_pid_affinities, previous_irq_affinities) -def include_cpu(cpu, nr_cpus): +def include_cpus(cpus, nr_cpus): ps = procfs.pidstats() ps.reload_threads() previous_pid_affinities = {} @@ -240,9 +240,9 @@ def include_cpu(cpu, nr_cpus): if iskthread(pid): continue affinity = schedutils.get_affinity(pid) - if cpu not in affinity: + if set(affinity).intersection(set(cpus)) != set(cpus): previous_pid_affinities[pid] = copy.copy(affinity) - affinity.append(cpu) + affinity = list(set(affinity + cpus)) schedutils.set_affinity(pid, affinity) if not ps[pid].has_key("threads"): @@ -252,9 +252,9 @@ def include_cpu(cpu, nr_cpus): if iskthread(tid): continue affinity = schedutils.get_affinity(tid) - if cpu not in affinity: + if set(affinity).intersection(set(cpus)) != set(cpus): previous_pid_affinities[tid] = copy.copy(affinity) - affinity.append(cpu) + affinity = list(set(affinity + cpus)) schedutils.set_affinity(tid, affinity) del ps @@ -267,9 +267,9 @@ def include_cpu(cpu, nr_cpus): if not irqs[irq].has_key("affinity"): continue affinity = irqs[irq]["affinity"] - if cpu not in affinity: + if set(affinity).intersection(set(cpus)) != set(cpus): previous_irq_affinities[irq] = copy.copy(affinity) - affinity.append(cpu) + affinity = list(set(affinity + cpus)) set_irq_affinity(int(irq), procfs.hexbitmask(affinity, nr_cpus)) diff --git a/tuna/tuna_gui.py b/tuna/tuna_gui.py index 7aba699..c309f6a 100644 --- a/tuna/tuna_gui.py +++ b/tuna/tuna_gui.py @@ -326,7 +326,7 @@ class cpuview: def include_cpu(self, cpu): self.previous_pid_affinities, \ - self.previous_irq_affinities = tuna.include_cpu(cpu, self.cpus.nr_cpus) + self.previous_irq_affinities = tuna.include_cpus([cpu,], self.cpus.nr_cpus) if self.previous_pid_affinities: self.procview.refresh() |