feat(xtest): benchmark payloads up to 1 GiB, with per-dispatch budget - #622
Draft
dmihalcik-virtru wants to merge 1 commit into
Draft
dmihalcik-virtru wants to merge 1 commit into
dmihalcik-virtru wants to merge 1 commit into
Conversation
At the default sizes (1 KiB, 1 MiB, 32 MiB) this harness cannot fail a build on throughput: on a 4-core runner a go encrypt costs ~450ms of fixed startup against ~72ms that scales with the payload, so the 1.15x gate is wider than the whole payload-dependent part. --bench-payloads lets a manual dispatch ask a throughput question the nightly cannot afford to ask every night. - perf/cells.py: Payload/parse_payload/parse_payloads replace the fixed 3-entry PAYLOADS tuple, so a spec like '1KiB,1GiB' builds an arbitrary cell matrix. CONTROL_PAYLOAD is a fixed 1 MiB literal rather than PAYLOADS[1] -- same value, but no longer coupled to whatever the selection happens to be, since the control's CI width is the run's noise floor and it must not move with --bench-payloads. - fixtures/bench.py: --bench-payloads wiring, chunked payload generation (a 1 GiB file is written in 8 MiB chunks rather than held in memory), and an up-front disk-space check -- a run holds roughly twice the payload total plus one live output per arm of the largest, and running out mid-benchmark otherwise surfaces as a non-zero exit that reads as 'this build is broken'. - xtest.yml: bench-payloads input, validated against the real parser before the platform spins up rather than re-implementing the grammar in bash. Built on the K-arm core: the disk estimate and the default budget both scale with arm count, since a K-arm cell holds K live outputs instead of 2.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Sep 23, 2026
|
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.



Split out of #583. Stacked on #621.
At the default sizes (1 KiB, 1 MiB, 32 MiB) this harness cannot fail a build on throughput: on a 4-core runner a go encrypt costs ~450ms of fixed startup against ~72ms that scales with the payload, so the 1.15x gate is wider than the whole payload-dependent part.
--bench-payloadslets a manual dispatch ask a throughput question the nightly cannot afford to ask every night.perf/cells.py:Payload/parse_payload/parse_payloadsreplace the fixed 3-entryPAYLOADStuple, so a spec like1KiB,1GiBbuilds an arbitrary cell matrix.CONTROL_PAYLOADis a fixed 1 MiB literal rather thanPAYLOADS[1]-- same value, but no longer coupled to whatever the selection happens to be, since the control's CI width is the run's noise floor and it must not move with--bench-payloads.fixtures/bench.py:--bench-payloadswiring, chunked payload generation (a 1 GiB file is written in 8 MiB chunks rather than held in memory), and an up-front disk-space check.xtest.yml:bench-payloadsinput, validated against the real parser before the platform spins up.Built on the K-arm core (#621): the disk estimate and the default budget both scale with arm count.