Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
[wrt350n-kernel.git] / Documentation / IRQ-affinity.txt
blob938d7dd054905edfae6d9bc76ca27ffdfbd42629
2 SMP IRQ affinity, started by Ingo Molnar <mingo@redhat.com>
5 /proc/irq/IRQ#/smp_affinity specifies which target CPUs are permitted
6 for a given IRQ source. It's a bitmask of allowed CPUs. It's not allowed
7 to turn off all CPUs, and if an IRQ controller does not support IRQ
8 affinity then the value will not change from the default 0xffffffff.
10 Here is an example of restricting IRQ44 (eth1) to CPU0-3 then restricting
11 the IRQ to CPU4-7 (this is an 8-CPU SMP box):
13 [root@moon 44]# cat smp_affinity
14 ffffffff
15 [root@moon 44]# echo 0f > smp_affinity
16 [root@moon 44]# cat smp_affinity
17 0000000f
18 [root@moon 44]# ping -f h
19 PING hell (195.4.7.3): 56 data bytes
20 ...
21 --- hell ping statistics ---
22 6029 packets transmitted, 6027 packets received, 0% packet loss
23 round-trip min/avg/max = 0.1/0.1/0.4 ms
24 [root@moon 44]# cat /proc/interrupts | grep 44:
25  44:          0       1785       1785       1783       1783          1
26 1          0   IO-APIC-level  eth1
27 [root@moon 44]# echo f0 > smp_affinity
28 [root@moon 44]# ping -f h
29 PING hell (195.4.7.3): 56 data bytes
31 --- hell ping statistics ---
32 2779 packets transmitted, 2777 packets received, 0% packet loss
33 round-trip min/avg/max = 0.1/0.5/585.4 ms
34 [root@moon 44]# cat /proc/interrupts | grep 44:
35  44:       1068       1785       1785       1784       1784       1069       1070       1069   IO-APIC-level  eth1
36 [root@moon 44]#