Userspace Scheduler Microbenchmark ################################## This is a scheduler microbenchmark, designed to measure minimum latencies (not scaling performance) of specific low level scheduling primitives independent of overhead from application or API abstractions. Contrary to the non-userspace version, it runs threads in userspace with different memory domains. It works very simply: a main thread creates n "yielders" threads at a higher priority, from this initial state: 1. The main thread starts all yielders 2. Each yielder yields k times 5. The main thread joins all yielders This is run for multiples values of n, reporting each time the average time taken for a yield context switch.