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.