Repository navigation
perf: narrow retired-page searches using existing owner bounds (#610) - #611
Conversation
Local-Gate: v1 tree=9aefd4def4a9dd2472728d9abe267c3cca1e785a secs=67 lanes=lint:run
Ci-Attestation: {"at":1792651390,"gate":"python/all/lint","host":"linux-x86_64","key":"11c60ffeed1f6e34257cc6362a2d8d0075d0bb239638fdb35e03e49b232b0986","lane":"lint","parents":["9ecc974cdc7c1044d22fadbcdfdb2536695f3bef"],"secs":67,"stamp":"2005fafde95991922c5d51848704157d","tree":"9aefd4def4a9dd2472728d9abe267c3cca1e785a","v":1,"via":"run"}
Local-Gate: v1 tree=5d208c68f8c3270774b9cd7fb517ca9440b26cfd secs=58 lanes=lint:run
Ci-Attestation: {"at":1792653828,"gate":"python/all/lint","host":"linux-x86_64","key":"c500e1cdb053ca2a398ad20a210f6eeccaac7a0e9aa29db2b615314d9b0860a4","lane":"lint","parents":["14ef7ec58a591f400031f388e65c122c89f3fc8b"],"secs":58,"stamp":"29e15268ef4d9360a24cdd4f28e0634c","tree":"5d208c68f8c3270774b9cd7fb517ca9440b26cfd","v":1,"via":"run"}
Local-Gate: v1 tree=fc385abeb61f62540c4595b67eec3b7a6ff0be2f secs=50 lanes=lint:run
Ci-Attestation: {"at":1792656787,"gate":"python/all/lint","host":"linux-x86_64","key":"a514d8f6fe497aa069166e065c7b818d1fecea708573a3a8fc5722a63030ad50","lane":"lint","parents":["52eab5b38deebc3c01135397b945544587f6029f"],"secs":50,"stamp":"b3713470065b4ed6a17593c1632e082d","tree":"fc385abeb61f62540c4595b67eec3b7a6ff0be2f","v":1,"via":"run"}
Local-Gate: v1 tree=30c44cb466fd6272d52430322e80f68ad3f1cbdb secs=88 lanes=lint:run
Ci-Attestation: {"at":1792662371,"gate":"python/all/lint","host":"linux-x86_64","key":"e4a9a94891b7560e5a2a964f3ec5e2ec641a8a249a518f85aca650918053f41a","lane":"lint","parents":["b2978df6ae0266e8ebd47f116874fba72a38e340"],"secs":87,"stamp":"cb542d3f559637e4dd9258b7fe2f43e0","tree":"30c44cb466fd6272d52430322e80f68ad3f1cbdb","v":1,"via":"run"}
Owner acceptance — 2026-10-22The owner explicitly accepted this candidate and directed merge: “Let's go ahead and Merge this, it seems that we've satisfied the goal that we wanted to do.” Accepted head: All thirteen original comparisons are complete: 62 PASS, 16 INCONCLUSIVE, zero FAIL. The owner accepts the disclosed uncertainty, including CPU/throughput controls and the adverse intervals described in the full ledger. INCONCLUSIVE labels remain unchanged; this disposition does not establish equality or alter noise thresholds or memory credit. Supported gains are chart-ephemeral CPU/op −0.619% and short-generation chart-ephemeral throughput +0.569%; no RSS saving is claimed. All release bounds held. Full original ledger · Committed evidence and source identity · Final required CI and memory-gate record. Source/platform checks and final required checks are green; the same sole reviewer is clean. Both rejected prototypes and their original failed/incomplete measurements remain archived. Temporary measurement files have been cleaned. Merge will preserve the separate C-core and Rust commits, followed by the requested rebase onto origin/main. |
Summary
Closes #610. Current source: v3
b2978df6ae0266e8ebd47f116874fba72a38e340. Draft; v3 correctness/platform gates have passed. Full performance coverage is complete; acceptance remains pending.Intersect the retired-page best-fit scan with the owner's existing retired-bin bounds, and run the selector in a separate explicitly noinline function. Keep selection/ties, exact-fit exit, unpublished/full/busy slots, aging, budgets, geometry, ownership and purge policy. No new fields, tuning options, mandatory dependencies, or workload/configuration specialization. The counted inline body is shared with tests; the production wrapper passes NULL and eliminates that counter. C-core and Rust regeneration are separate commits.
Frozen baseline:
2c7fed4edf91cf412c8969cf3cafeb690f0ed3e3. Fetch/rebase checks still report up to date. Existing perf-ab allocator/replay builds route through soldr; traces, order, seeds, touches, operation counts and metric thresholds are unchanged.Rejected sources remain in the record
42d06c34, inline full boundsa718c4e7, inline prefix onlyb2978df6, separate full-bounds selectorOriginal v1 ledger · Complete v2 ledger · V2 sanity failure · V2 p99 failure and attribution limits.
The baseline-only RSS diagnostic completed 60 samples per arm on EPYC 7763 with identical binaries and zero threshold crossings. It does not explain the failed EPYC 9V45 execution or clear that failure. All raw samples, binaries, profiles, errors and scripts are retained for durable archival.
V3 verification and costs
5fb9a1b99050ae822a26cc1dc6f3058338c64311has the identical entire Git tree as the measured head (fc385abeb61f…). Performance acceptance remains pending; source correctness does not replace missing target/control measurements.Predeclared staged comparison
Full v3 plan: first measure main, plain ephemeral and chart-ephemeral, once each, with 60 initial samples/arm, adaptive cap 120, null arm and sanity gate on. If these have no FAIL/sanity or service-bound violation and at least one supported CPU/throughput target gain, measure the remaining ten rows exactly once. These complete the same 12 defaults plus sparse-64-slot diagnostic, including small/Larson controls. Do not remeasure the first three or mix older passes into v3.
Report all six metrics and original PASS/INCONCLUSIVE/FAIL labels, preserving incomplete failures. No new uncertainty tolerance or memory credit is introduced; retain canonical and stricter zero-credit checks. A confirmed scenario FAIL rejects the source. Merge and cleanup remain pending acceptance; rebase to origin/main again after merge.
Current measurement status
All thirteen original v3 comparisons are complete: 62 PASS, 16 INCONCLUSIVE, zero FAIL metric checks. All release bounds held; the strict zero-credit shadow has the same verdicts. Bursty completed90 samples/arm with all six checks PASS; no unchanged run was repeated.
Supported target gains so far are chart-ephemeral CPU/op −0.619% [95% CI −1.077%, −0.093%] and short-generation chart-ephemeral throughput +0.569% [+0.071%, +1.082%]. No RSS saving or memory credit is claimed.
Uncertainty includes main throughput, plain-ephemeral p99, single-worker random-large CPU/throughput, small/8 CPU/faults, Larson/1 CPU/throughput, chart-Larson CPU/throughput/faults/peak RSS, profiler-on CPU/throughput, and sparse-buffer peak/drain RSS. In particular, random-large/1 throughput is −0.818% [−1.268%, −0.312%] and CPU/op +0.885% [+0.156%, +1.700%]; those adverse intervals remain INCONCLUSIVE against the noise gate, not PASS or equality. The full original intervals, samples, binaries and zero-credit checks are retained.
The docs’ automatic limited-ancillary-uncertainty rule does not cover uncertain CPU/throughput controls. The durable archive verifies744 inputs, all39 original candidate datasets plus the baseline-only diagnostic, with zero pending. Same sole reviewer CLEAN. Artifact-only local gate45/45 PASS in88s; committed ZIP hash verified. Explicit acceptance disposition remains pending. No unchanged reruns or altered thresholds are used to change labels.
Final required CI
The final head’s required minimal-lane checks are GREEN, including the Linux memory gate. Full final CI state, explicit memory-gate result and terminal observer log. Earlier full source/platform results remain retained; skipped full-platform jobs are not claimed as re-executed.
Durable evidence
Archive and verifier retain all original raw samples, actual executables and rejected outcomes. Measured source remains
b2978df6ae0266e8ebd47f116874fba72a38e340; final head5e4b32195570928f1d05a1c70d1c164dc73ce0c5changes only the evidence package and its ignore/binary attributes, proven by path inventory. Source/platform validation is for the measured code; raw sample SHAs are not rewritten.V3 original performance cohort
Baseline:
2c7fed4edf91cf412c8969cf3cafeb690f0ed3e3. Candidate:b2978df6ae0266e8ebd47f116874fba72a38e340.13/13 complete original comparisons. Metric counts: 62 PASS, 16 INCONCLUSIVE, 0 FAIL. Counts are not an aggregate performance score.
Changes below are paired percentages with 95% confidence intervals. CPU time is proportional to CPU/op within each fixed-operation workload. Throughput increasing is beneficial; other metrics decreasing is beneficial. A PASS is a regression-gate result, not proof of improvement or equality. No RSS saving or memory credit is claimed. Each same-host comparison stands alone; hosts are not pooled.
Run integrity
The first three measurements were not repeated. Remaining ten were dispatched once under the predeclared expansion condition. Null arm, RSS sanity screen, traces, seeds, touch pattern, operation count and thresholds are unchanged. Original raw samples, binary manifests and all four measured executables are retained for each run. Rejected V1/V2 measurements and the separate baseline-only diagnostic remain part of the evidence archive.
Acceptance remains a separate recorded decision. Main-throughput INCONCLUSIVE is outside the automatic ancillary-uncertainty rule in docs/dev-loop.md. No new tolerance is introduced and no INCONCLUSIVE label is converted into PASS.
Supported direction and unresolved risk
Supported direction means the full 95% interval lies on one side of zero. It is separate from the regression gate, which compares costs to measured noise and any permitted credit. Even an adverse supported direction can be PASS or INCONCLUSIVE against that gate. No metric compensates for a different cell.
Every unresolved cell