CPU shielding using /proc and /dev/cpuset
Interrupt shielding
In order to shield CPUs from individual interrupts being serviced on them you have to make sure that the following kernel configuration parameter is set:
- CONFIG_IRQBALANCE
Then make sure that the interrupts are not automatically balanced by the irqbalance daemon. This daemon is started from the irqbalance init script. To disable once do:
# /etc/init.d/irqbalance stop
To disable after next reboot do:
# chkconfig irqbalance off
After this you can change the CPU affinity mask of each interrupt by doing:
# echo hex_mask > /proc/irq/irq_number/smp_affinity
More information can be found in /usr/src/kernel/Documentation/IRQ-affinity.txt
.
Process shielding
The kernel has an cpuset feature that allows you to create cpusets for real-time purposes. The kernel interface is proc filesystem based. It is described in /usr/src/kernel/Documentation/cpusets.txt
.