Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 
  2 SMP IRQ affinity, started by Ingo Molnar <mingo@redhat.com>
  3 
  4 
  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.
  9 
 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):
 12 
 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
 30 ..
 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]#
 37 
  This page was automatically generated by the LXR engine.