| 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. |