Testcase 01
-----------
This test attempts to verify that when a CPU is offlined, that a process
writing to disk doesn't cause an issue. We create a process that writes
to disk, force it to run only on a specified CPU by setting its CPU
affinity to just that CPU, then offline that CPU, and verify that the
process moves to another processor properly.
Notes
=====
There are two kinds of masks: One to specify which CPU's are allowed
to be used for the given process, and one for the smp affinity.
This may be hard to verify but we can indirectly check on this
by looking at /proc/stat or measuring the relative performance
of some parallelized benchmark before and after onlining the CPU.
Algorithm
=========
Given a CPU to test that exists
Take a snapshot of what CPUs are on and off initially
Make sure the cpu is online
Start up a process that writes to disk
Loop until done:
Take a snapshot of /proc/interrupts
Foreach CPU in the system
online the CPU
migrate the IRQs to it
sleep a little while
Foreach CPU in the system
migrate IRQs onto the CPU
offline the cpu
sleep a little while
Take another snapshot of /proc/interrupts
Print a report showing the change in IRQs
When exiting:
Kill the write loop process
Restore all CPUs to their initial state