Skip to content

doc: state the thresholds that CI's performance gate uses - #981

Merged
Pedro Henrique Penna (ppenna) merged 2 commits into
devfrom
fix/doc-ci-gate-thresholds
Oct 29, 2026
Merged

Pedro Henrique Penna (ppenna) merged 2 commits into
devfrom
fix/doc-ci-gate-thresholds

Conversation

@ppenna

@ppenna Pedro Henrique Penna (ppenna) commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

doc/benchmarks.md says the regression gate fails a metric that is more than 40% worse and, for millisecond latencies, also more than 5 ms slower. CI passes 50% and 10 ms (ci.yml), as it has since the first commit. #400 set the guide to the defaults of performance gate, 40% and 5 ms, but that paragraph describes the CI gate.

# Commit Change
1 doc: state the thresholds that CI's performance gate uses Restores 50% and 10 ms, names ci.yml as their source, and points to the command's defaults in the CLI reference.
2 scripts: check that the guides state the performance gate's thresholds Reads the CI values from ci.yml and the defaults from the performance gate parser, and checks that doc/benchmarks.md and doc/usage.md state them.

Found while investigating #415.

Validation

Windows 11, Python 3.14:

  • python -m unittest scripts/test_performance.py: 100 tests pass.
  • The new test fails against the previous text of doc/benchmarks.md: 'more than 50% worse' not found.
  • ruff check, ruff format --check, pyright --pythonplatform Linux and Windows, and scripts/check_markdown_links.py pass.
  • classify-ci-changes selects no platform, microVM, or OpenVMM suite for these two files. This run builds the guest artifacts and OpenVMM and runs the platform benchmarks anyway: the change detector diffs the base and head commits directly, and this branch is one data: baseline commit behind dev.

#400 replaced the thresholds in doc/benchmarks.md, 50% and 10 ms, with
the defaults of performance gate, 40% and 5 ms. That paragraph
describes the CI gate, and ci.yml has passed 50% and 10 ms since the
first commit, so the guide described a stricter gate than CI runs.

Restore CI's thresholds, name ci.yml as their source, and point to the
command's defaults in the CLI reference.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The benchmark guide states the thresholds that ci.yml passes to the
regression gate, and both guides state the defaults of performance
gate. Read both from their sources, so that a change to either, or an
edit like #400's, fails the tests until the guides follow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 28, 2026 23:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are recorded for the benchmark threshold documentation correction and accompanying regression test.

No open issues 🎉

What changed in this PR

This PR corrects the benchmark guide to distinguish CI’s performance-gate thresholds from the CLI defaults. It also adds a regression test to keep the documentation aligned with both sources.

Changes:

  • Documents CI’s 50% regression threshold and 10 ms absolute tolerance, while preserving the CLI defaults of 40% and 5 ms.
  • Checks the documented values against the CI workflow and CLI parser defaults.
File Description
scripts/​test_performance.py Adds consistency checks for thresholds documented in the benchmark and usage guides.
doc/​benchmarks.md Corrects CI thresholds and links to the workflow and CLI defaults.

Review effort: Balanced

@ppenna
Pedro Henrique Penna (ppenna) merged commit 2d14547 into dev Oct 29, 2026
38 checks passed
@ppenna
Pedro Henrique Penna (ppenna) deleted the fix/doc-ci-gate-thresholds branch October 29, 2026 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants