diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2009-11-12 13:17:04 -0200 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2009-11-12 13:17:04 -0200 |
commit | b53bfc935cc5032cfb4638d62521099117541ac5 (patch) | |
tree | fdae77deacf05477e13f4c214fb60691dec03794 | |
parent | 2c581bf2b4dd9d6dbc6c16b06f6108f2caa2cfec (diff) | |
download | tuna-b53bfc935cc5032cfb4638d62521099117541ac5.tar.gz |
cmdline: Take cpu_list into account in --show_irqs/-Q
[root@emilia ~]# tuna -c0 -q eth2-* -Q
# users affinity
147 eth2-rx-0 0 ixgbe
211 eth2-tx-0 0 ixgbe
[root@emilia ~]#
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rwxr-xr-x | tuna-cmd.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/tuna-cmd.py b/tuna-cmd.py index 99d3aea..1b6f460 100755 --- a/tuna-cmd.py +++ b/tuna-cmd.py @@ -313,7 +313,7 @@ def find_drivers_by_users(users): return drivers -def show_irqs(irq_list): +def show_irqs(irq_list, cpu_list): global irqs if not irqs: irqs = procfs.interrupts() @@ -322,21 +322,27 @@ def show_irqs(irq_list): sorted_irqs = [] for k in irqs.keys(): try: - sorted_irqs.append(int(k)) + irqn = int(k) + affinity = irqs[irqn]["affinity"] except: - pass + continue + if irq_list and irqn not in irq_list: + continue + + if cpu_list and not set(cpu_list).intersection(set(affinity)): + continue + sorted_irqs.append(irqn) + sorted_irqs.sort() for irq in sorted_irqs: - if irqs[irq].has_key("affinity"): - if irq in irq_list: - affinity = format_affinity(irqs[irq]["affinity"]) - users = irqs[irq]["users"] - print "%4d %-16s %8s" % (irq, ",".join(users), affinity), - drivers = find_drivers_by_users(users) - if drivers: - print " %s" % ",".join(drivers) - else: - print + affinity = format_affinity(irqs[irq]["affinity"]) + users = irqs[irq]["users"] + print "%4d %-16s %8s" % (irq, ",".join(users), affinity), + drivers = find_drivers_by_users(users) + if drivers: + print " %s" % ",".join(drivers) + else: + print def do_list_op(op, current_list, op_list): if not current_list: @@ -477,7 +483,7 @@ def main(): # resolved to IRQs, don't show all IRQs. if not irq_list and irq_list_str: continue - show_irqs(irq_list) + show_irqs(irq_list, cpu_list) elif o in ("-n", "--show_sockets"): show_sockets = True elif o in ("-m", "--move", "-x", "--spread"): |