| This test program tests the features of task isolation. |
| |
| - Makes sure enabling task isolation fails if you are unaffinitized |
| or on a non-task-isolation cpu. |
| |
| - Tests that /sys/devices/system/cpu/task_isolation works correctly. |
| |
| - Validates that various synchronous exceptions are fatal in isolation |
| mode: |
| |
| * Page fault |
| * System call |
| * TLB invalidation from another thread [1] |
| * Unaligned access [2] |
| |
| - Tests that taking a user-defined signal for the above faults works. |
| |
| - Tests that isolation in "no signal" mode works as expected: you can |
| perform multiple system calls without a signal, and if another |
| process bumps you, you return to userspace without any extra jitter. |
| |
| [1] TLB invalidations do not cause IPIs on some platforms, e.g. arm64 |
| [2] Unaligned access only causes exceptions on some platforms, e.g. tile |
| |
| |
| You must be running under a kernel configured with TASK_ISOLATION; |
| this is available from the "dataplane" branch at: |
| |
| http://git.kernel.org/cgit/linux/kernel/git/cmetcalf/linux-tile.git/ |
| |
| You must either have configured with TASK_ISOLATION_ALL or else |
| booted with an argument like "task_isolation=1-15" to enable some |
| task-isolation cores. If you get interrupts, you can also add |
| the boot argument "task_isolation_debug" to learn more. |
| |
| In addition, you must apply the one-line patch in |
| sched-tick-disable-hack.patch to disable the 1 Hz default tick. |
| |
| |
| To compile the test program, run "make". |
| |
| Run the program as "./isolation" and if you want to run the |
| jitter-detection loop for longer than 10 giga-cycles, specify the |
| number of giga-cycles to run it for as a command-line argument. |
| |
| |
| Please send questions and comments to cmetcalf@kernel.org. |