test(runtime): add scheduler service latency benchmark - #1016
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a focused scheduler service-latency benchmark for armed I/O and remote inbox work under sustained runnable load.
Changes:
- Adds configurable trials, smoke mode, percentile reporting, and bounded cleanup.
- Integrates a Release CI smoke run.
- Documents usage and measurement interpretation.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
examples/scheduler_service_benchmark.cpp |
Implements the benchmark. |
examples/CMakeLists.txt |
Adds the benchmark target. |
.github/workflows/ci.yml |
Runs smoke coverage in Release CI. |
README.md |
Lists benchmark build and run commands. |
wiki/Performance-Tuning.md |
Documents interpretation guidance. |
CHANGELOG.md |
Records the new benchmark. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a focused mixed-workload benchmark for scheduler service latency. It measures how long a single worker takes to service an already-armed I/O completion and a remote MPSC-inbox submission while a yield loop keeps the local runnable deque non-empty.
The benchmark reports p50, p99, and maximum latency, records the selected I/O backend, refuses to mix samples from different backends, and bounds every setup/completion/shutdown phase. Its
--smokemode is added to Release CI only as build-and-termination coverage; noisy shared-runner timing values are deliberately not pass/fail thresholds.Type of Change
Related Issues
Closes #1015
Changes Made
Core Changes
scheduler_service_benchmarkwith configurable trial count and backlog duration.API Changes
None.
Testing
Unit Tests
Sanitizer Testing
Test Results
GCC emits its existing
atomic_thread_fence is not supported with -fsanitize=threadwarnings from runtime headers, so the standalone TSAN benchmark build disabled warnings-as-errors while retaining TSAN instrumentation and halt-on-error behavior.Checklist
Code Quality
-WerrorDocumentation
Testing
Compatibility
Performance
Reviewer Guidance
Please focus on: