schbench/thread-contention
schbench scheduler benchmark measuring message and worker thread latency under contention.
Benchmark Profile
Type: Micro
Kernel subsystem: Scheduler, wakeups, contention
Coverage: Directly measured
Topology: Single role: executer
Overview
schbench creates message threads that dispatch work to worker threads, measuring 99th-percentile and mean latency. Sweeps the number of message and worker threads to characterise scheduler behaviour under varying contention levels.
Fastpath Parameters
Name |
Description |
|---|---|
message-thread-start |
Starting number of message threads. Mandatory. |
message-thread-end |
Ending number of message threads for sweep. Optional; defaults to min(64, cpus). |
message-thread-multiply |
Multiplicative step for message thread sweep. Optional; defaults to 2. |
worker-thread-start |
Starting number of worker threads. Mandatory. |
worker-thread-end |
Ending number of worker threads for sweep. Optional; defaults to 2 * cpus. |
worker-thread-multiply |
Multiplicative step for worker thread sweep. Optional; defaults to 4. |
runtime |
Benchmark run duration in seconds. Mandatory. |
sleep-usec |
Sleep time between dispatches in microseconds. Mandatory. |
Result Classes
Result class names encode message-thread and worker-thread counts and the latency percentile, for example ‘MsgT: 16 WrkT: 8 p99 (usec)’.
Fastpath Metadata
Field |
Value |
|---|---|
Suite |
schbench |
Name |
thread-contention |
Type |
scheduler |
Container Image |
registry.gitlab.arm.com/tooling/fastpath/containers/schbench:v1.0 |
Documentation Path |
documentation/user-guide/benchmarkcatalog/schbench-thread-contention.rst |
Documentation URL |
https://fastpath.docs.arm.com/user-guide/benchmarkcatalog/schbench-thread-contention.html |