Skip to content

Benchmarks: Integrate schbench benchmark to fastpath

Aishwarya Rambhadran requested to merge aisram01/schbench-implemnt into main

Add the necessary files for integrating the `schbench` workloads to Fastpath benchmarks. `schbench` benchmark evaluates scheduler performance by measuring wakeup latencies, request latencies, and throughput under varying thread and runtime configurations.

Update benchmarks library with `thread-contention.yaml` plan to run basic tests under `schbench`, utilizing minimal schbench configurations. Define the suite, name, type & container image path of the `schbench` suite. The plan supports params such as message thread & worker thread sweep (start, end, multiplicative step), runtime, & sleeptime for tuning the schbench testcases as required by the user.

Add a Dockerfile to create a containerized environment for running `schbench` benchmark suites. The DockerFile installs dependencies, clones the `schbench` repository, and sets up exec.py script as the container entrypoint.

Implement exec.py script to handle benchmark execution & result processing. To start off, generate `schbench` test cases with minimal configuration by setting message & worker thread counts, runtime & sleeptime only. For this `thread-contention` suite, the message & worker thread counts should sweep across specified range. For each message thread, iterate and generate tests for all worker thread counts. Message thread count sweep is capped at min(64, cpus) and worker thread count sweep is capped at 2*cpus, where 'cpus' depends on the selected SUT. This is to ensure that threads don't hit the max Virtual Memory Area (VMAs) access allowed in the system. Then, parse key metrics such as wakeup latency (P99), request latency (P99), and average requests per second from output files. Process & save each test case result by splitting it into Fastpath result classes corresponding to the key result metrics.

Signed-off-by: Aishwarya Rambhadran aishwarya.rambhadran@arm.com

Edited by Aishwarya Rambhadran

Merge request reports

Loading