Skip to content

ci: perf-ab sanity gate judges head against max(base, null arm) (#620) - #624

Merged
zackees merged 1 commit into
mainfrom
fix/620-sanity-gate-null-arm
Oct 23, 2026
Merged

zackees merged 1 commit into
mainfrom
fix/620-sanity-gate-null-arm

Conversation

@zackees

@zackees zackees commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Closes #620.

The first-repetition sanity gate (#573) compared head with a single base sample. In run 39896572843 base drain RSS read 48.3 MiB (low mode of a bimodal sample) while the null arm — the same base binary — read 208.0, so head's 208.5 aborted the campaign.

With --null-arm, head is now screened against sanity_reference(base, null) = per-metric max of the two base runs. Without a null arm the gate is unchanged. The per-cell ledger still judges every rep against the null noise floor, so a real leak still fails there; the gate's 1.5x + 8 MiB still catches the #572-class leak whenever base and null agree.

Test: test_sanity_gate_reference_absorbs_null_arm_spread replays the run's numbers. ci/tests/test_perf_ab.py: 74 passed.

A single bimodal base sample (drain RSS 48.3 vs null 208.0 MiB in run
39896572843) aborted a campaign the null arm reproduced. With --null-arm,
screen head against the per-metric worse of the two base runs.

Local-Gate: v1 tree=2513449976a263b4ffdbcad5abf733bd38e8f940 secs=62 lanes=lint:run
Ci-Attestation: {"at":1792798726,"gate":"python/all/lint","host":"linux-x86_64","key":"9241646da94324de4e0c5f44e6050bef2db7f18250ef225a4226a804f195ca1b","lane":"lint","parents":["aaef948845f03eecd7e80b29196a4e891bf55444"],"secs":62,"stamp":"ea51a21011d8b9a78e7a952ebddb4aab","tree":"2513449976a263b4ffdbcad5abf733bd38e8f940","v":1,"via":"run"}
@zackees
zackees merged commit f7e454f into main Oct 23, 2026
64 checks passed
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.

perf-ab sanity gate ignores the null arm: base-noise drain spikes trip it

1 participant