Skip to content

perf(gc): reduce retained arena RSS and redundant GC work - #11781

Merged
proggeramlug merged 2 commits into
mainfrom
rss-gc-runtime-20261003
Oct 4, 2026
Merged

proggeramlug merged 2 commits into
mainfrom
rss-gc-runtime-20261003

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Reduce peak RSS of GC-enabled compiled programs by compacting persistent old-page metadata (104→56 bytes per page plus shared chunks), releasing cold owned arena pages while preserving recent reuse, and avoiding redundant GC bookkeeping. Lazy malloc membership and epoch/generation checks remove work without changing collection thresholds, object headers, shapes, or the ABI. Stream hidden-key caches use fast TLS and retain their registered GC root scanner.

Matched measurements against main ad0a2617bf0b9708032cf89c86575e9bd69fb074: 17 workloads, 204 correct executions, three RSS and three instruction samples per arm. TypeScript peak RSS −4.74% (instructions +0.41%); trees −11.67% (instructions −0.40%); Zod −0.26% (instructions −0.05%). Every RSS median improved except unchanged noop. Full signed results, distributions, source/product hashes and verification scripts are in docs/audits/gc-rss-instructions-2026-10-03.

Validation of the measured GC source: Linux runtime 4867 passed; macOS 4881 passed; five ignored on each. Moving/protected linked coverage has 22 executions, including 11 with actual moving collections. Linux and macOS each pass 15 event tests, 75 FFI tests and doc tests. The landing tree rebases onto main 0a5bb47dc5, adds the TLS gate fix and patch version 0.5.1657; fresh final-tree build, runtime/stdlib/integration suites and the complete lint/check tier are running in an isolated checkout on the build server. Prior app measurements remain bound to their measured commits.

Pending-mark-frontier, RSS query sampling, learned nursery-floor and native-prefix experiments are excluded. Class-value root scanning belongs to Claude's perf-class-value-scan lane. GC pacing, conservative scanning (#11873) and incremental correctness (#11842) are follow-up work, not claims of this PR. Twelve blank lines are removed from the inherited 2008-line object module solely to satisfy the file-size gate; no object-model behavior changes.

@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 493 files, which is 193 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1aa6f6b3-0c78-4621-a92b-985bb9510e6e
📥 Commits

Reviewing files that changed from the base of the PR and between 0a5bb47 and 41e68ed.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (493)
  • CLAUDE.md
  • Cargo.toml
  • changelog.d/11781-gc-runtime-rss-instructions.md
  • crates/perry-runtime/src/arena/block.rs
  • crates/perry-runtime/src/arena/block/decommit.rs
  • crates/perry-runtime/src/arena/block/reuse_window_tests.rs
  • crates/perry-runtime/src/arena/mod.rs
  • crates/perry-runtime/src/arena/page_meta/compact.rs
  • crates/perry-runtime/src/arena/page_meta/compact/tests.rs
  • crates/perry-runtime/src/arena/page_meta/maintenance.rs
  • crates/perry-runtime/src/arena/page_meta/mod.rs
  • crates/perry-runtime/src/arena/page_meta/storage.rs
  • crates/perry-runtime/src/arena/page_meta/sweep_tally.rs
  • crates/perry-runtime/src/arena/promote.rs
  • crates/perry-runtime/src/arena/quarantine.rs
  • crates/perry-runtime/src/arena/reset.rs
  • crates/perry-runtime/src/arena/tests.rs
  • crates/perry-runtime/src/arena/tests_page_meta_audit.rs
  • crates/perry-runtime/src/arena/tests_promoted_runs.rs
  • crates/perry-runtime/src/arena/walk.rs
  • crates/perry-runtime/src/gc/cycle.rs
  • crates/perry-runtime/src/gc/layout_slot_visit.rs
  • crates/perry-runtime/src/gc/malloc.rs
  • crates/perry-runtime/src/gc/mod.rs
  • crates/perry-runtime/src/gc/tests/alloc.rs
  • crates/perry-runtime/src/gc/tests/eden_entry_residency.rs
  • crates/perry-runtime/src/gc/tests/full_rebuild_skip.rs
  • crates/perry-runtime/src/gc/tests/mod.rs
  • crates/perry-runtime/src/gc/verify.rs
  • crates/perry-runtime/src/node_stream_readwrite.rs
  • crates/perry-runtime/src/object/mod.rs
  • crates/perry-runtime/src/turnloop_pool/tests.rs
  • docs/audits/gc-rss-instructions-2026-10-03/LANDING_STATUS.md
  • docs/audits/gc-rss-instructions-2026-10-03/ONCE_ADVICE_ADOPTION.md
  • docs/audits/gc-rss-instructions-2026-10-03/PROGRESS.txt
  • docs/audits/gc-rss-instructions-2026-10-03/analyze-current0ed-native-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/archive-historical-query-auto-v84.py
  • docs/audits/gc-rss-instructions-2026-10-03/archive-rejected-auto-products-v78.py
  • docs/audits/gc-rss-instructions-2026-10-03/baseline-map-crosscheck-v70-triage.json
  • docs/audits/gc-rss-instructions-2026-10-03/baseline-tsc-diagnostic.json
  • docs/audits/gc-rss-instructions-2026-10-03/callback-capture-current-main0ed-full-runtime-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/callback-capture-current-main0ed-source-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/callback-capture-v11-candidate-arm64.s
  • docs/audits/gc-rss-instructions-2026-10-03/callback-capture-v11-control-arm64.s
  • docs/audits/gc-rss-instructions-2026-10-03/callback-capture-v11-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/callback-capture-v11.patch
  • docs/audits/gc-rss-instructions-2026-10-03/campaign-attribution.json
  • docs/audits/gc-rss-instructions-2026-10-03/check-gc-overlay-cargo-refresh.py
  • docs/audits/gc-rss-instructions-2026-10-03/check-gc-summary-verifier.py
  • docs/audits/gc-rss-instructions-2026-10-03/check-gc-window-projection.py
  • docs/audits/gc-rss-instructions-2026-10-03/cleanup-completed-auto-text-dumps-v71.py
  • docs/audits/gc-rss-instructions-2026-10-03/cleanup-completed-once-v65-cache.py
  • docs/audits/gc-rss-instructions-2026-10-03/cleanup-verified-auto-text-dumps-v73.py
  • docs/audits/gc-rss-instructions-2026-10-03/comparator-version-check-2305.json
  • docs/audits/gc-rss-instructions-2026-10-03/comparator-version-check-v48.json
  • docs/audits/gc-rss-instructions-2026-10-03/comparators-20261003-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/comparators-20261003-versions.json
  • docs/audits/gc-rss-instructions-2026-10-03/comparators-final-version-check.json
  • docs/audits/gc-rss-instructions-2026-10-03/completed-auto-text-dumps-v71-cleanup.json
  • docs/audits/gc-rss-instructions-2026-10-03/completed-main07-v40-auto-dependency-cache-cleanup.json
  • docs/audits/gc-rss-instructions-2026-10-03/completed-main07-v53-ffi-cache-cleanup.json
  • docs/audits/gc-rss-instructions-2026-10-03/completed-main07-v65-ffi-cache-cleanup.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-common-meta-sharing.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-full-runtime-builds.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-full-runtime-runs.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-full-runtime-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-heap-attribution.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-instruction-profile-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-native-attribution.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-normal-auto-partial-builds.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-normal-auto-partial-proof.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-normal-auto-partial-runs.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-normal-auto-partial-scope.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-normal-auto-partial-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-request-compiler-handoff.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main0ed-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-main334-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-arena-geometry.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-comparator-join.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-empty-pages-age-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-empty-pages-age-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-empty-pages-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-empty-pages-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-export-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-full-runtime-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-full-runtime-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-memory-observation-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-natural-arena-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-near-peak-mappings.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-private-elf-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-private-elf-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-private-helper-build-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-private-helper-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-private-helper-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-private-idle-build-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-regression-profile-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-regression-profile-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-mainc170-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-maine532-installed-products.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-maine532-objectmeta-layout.json
  • docs/audits/gc-rss-instructions-2026-10-03/current-maine532-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/current0ed-meta-observer-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/current0ed-meta-observer-v19.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-empty-arena-pages-v29-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-empty-arena-pages-v29.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-empty-arena-pages-v29r1-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-empty-arena-pages-v29r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-natural-arena-timeline-v26.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-natural-arena-timeline-v26r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-peak-mappings-v28.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-peak-mappings-v28r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/currentc170-peak-mappings-v28r2.py
  • docs/audits/gc-rss-instructions-2026-10-03/entry-eden-v35r1-real-collection-test.rs
  • docs/audits/gc-rss-instructions-2026-10-03/executable-footprint.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-auto-fault-events-revision.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-auto-mainad0-v79-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-auto-mainad0-v79-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-auto-v2-build-freshness-proof.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-comparison-summary-selftest.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-current0ed-instruction-profile-v21.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-currentc170-regression-profile-v23.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-final-instruction-profile-parser-check.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-final-instruction-profile.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-overlay-cargo-refresh-selftest.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-paired-instruction-domains-v1.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-current334-v10-auto-matrix.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-current334-v10-build.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-current334-v10-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-current334-v10-noauto.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-current334-v10-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-current334-v10-scripts.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-currente532-v12-auto-matrix.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-currente532-v12-build.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-currente532-v12-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-currente532-v12-noauto.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-currente532-v12-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-currente532-v12-scripts.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-pool-v3-stale-build-rejection.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-shared-window-auto-matrix-v7.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-shared-window-linked-v7.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-shared-window-noauto-v7.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-shared-window-v7-build.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-shared-window-v7-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-shared-window-v7-scripts.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-stale-build-verifier-negative.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-window-auto-matrix-v6r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-window-noauto-v6r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-window-v6-scripts.json
  • docs/audits/gc-rss-instructions-2026-10-03/gc-runtime-window-v6r1-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/gc-window-projection-selftest.json
  • docs/audits/gc-rss-instructions-2026-10-03/historical-query-auto-v84-local-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/historical-query-auto-v84-offload-complete.json
  • docs/audits/gc-rss-instructions-2026-10-03/inline-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/instruction-profile-plan.json
  • docs/audits/gc-rss-instructions-2026-10-03/instruction-profile-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/instruction-profile-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/landing-tls-baseline.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-build-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-comparator-join.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-comparator-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-four-case-and-private-entry-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-four-case-and-private-entry-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-linux-build-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-linux-ffi-events-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-mac-ffi-events-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-normal-auto-driver.py
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/latest-main2026-source-and-mac-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/learned-floor-main07-v59-inputs.json
  • docs/audits/gc-rss-instructions-2026-10-03/learned-floor-main07-v59-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/learned-floor-main07-v59.patch
  • docs/audits/gc-rss-instructions-2026-10-03/main-production-equivalence.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-comparator-join.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-comparator-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/main07-ffi-events-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-linux-runtime-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-mac-ffi-events-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-mac-runtime-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-normal-auto-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/main07-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-rebase-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-ring-attribution-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/main07-ring-attribution.md
  • docs/audits/gc-rss-instructions-2026-10-03/main69-full-runtime-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/main69-normal-auto-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-baseline-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-v72-inputs.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-v72-mac-run.py
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-v72-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-once-v74-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-v79-signed-results.md
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-v80-linux-ffi-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-v80-mac-ffi-run.py
  • docs/audits/gc-rss-instructions-2026-10-03/mainad0-v80-mac-ffi-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v68-inputs.json
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v68-mac-result.json
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v68-mac-run.py
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v68-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v68-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v68.patch
  • docs/audits/gc-rss-instructions-2026-10-03/map-prefix-main07-v69-v70-failure-r1-evidence-files.json
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-control-mainad0-v86-mac-run.py
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-mainad0-v81-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-mainad0-v82-mac-run.py
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-mainad0-v82-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-mainad0-v82-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-mainad0-v82.patch
  • docs/audits/gc-rss-instructions-2026-10-03/mark-frontier-mainad0-v85-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-current0ed-auto-partial-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-current0ed-auto-partial-v17r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-current0ed-tag-v18r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-currentc170-auto-v22-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-currentc170-auto-v22.py
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-currentc170-noauto-v22-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/measure-qb6-currentc170-noauto-v22.py
  • docs/audits/gc-rss-instructions-2026-10-03/native-sites-observer-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/offload-historical-query-auto-v84.py
  • docs/audits/gc-rss-instructions-2026-10-03/offload-rejected-auto-products-v78.py
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-adoption-source-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-main07-comparator-join.json
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-main07-comparator-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-main07-linux-ffi-events-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-main07-v65-mac-ffi-run.py
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-main07-v65-mac-ffi-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/once-advice-retain-release-repeat-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/page-class-compact-v8-macos-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/page-class-compact-v8.patch
  • docs/audits/gc-rss-instructions-2026-10-03/pages-boundary-accounting.json
  • docs/audits/gc-rss-instructions-2026-10-03/pages-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/pages-linux-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/pages-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/pages-vs-visitor-full-runtime.json
  • docs/audits/gc-rss-instructions-2026-10-03/paired-instruction-domains-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/paired-instruction-domains-plan.json
  • docs/audits/gc-rss-instructions-2026-10-03/paired-instruction-domains-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-retry-artifact-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-retry-linux-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-retry-products.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-retry-source-refresh.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/pool-vs-scan-full-runtime.json
  • docs/audits/gc-rss-instructions-2026-10-03/prepare-gc-overlay.py
  • docs/audits/gc-rss-instructions-2026-10-03/prepare-latest2026-v31.py
  • docs/audits/gc-rss-instructions-2026-10-03/preserve-map-prefix-main07-v69-v70-failures.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-arena-geometry-v27.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-arena-geometry-v27r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-entry-eden-v35r1-collection-test.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-entry-eden-v36-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-entry-once-main07-v45-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-entry-once-main07-v46-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-entry-once-main07-v47-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-gc-runtime-v24-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-gc-runtime-v24-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-gc-runtime-v25-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-gc-runtime-v25-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-idle-eden-v30-apps-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-idle-eden-v30-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-idle-eden-v30-build-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-idle-eden-v30-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-idle-eden-v30-residency-test-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-idle-eden-v30-residency-test.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-latest2026-v31-build-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-latest2026-v31-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-lazy-instruction-repeat-main07-v67-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-lazy-instruction-repeat-main07-v67.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-lazy-rss-main07-v51-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-lazy-rss-main07-v52-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-lazy-rss-main07-v54-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-learned-floor-main07-v59-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-learned-floor-main07-v60-auto-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-learned-floor-main07-v60-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-learned-floor-main07-v61-linked-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-learned-floor-main07-v61-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-main07-ring-v50.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-main07-v39-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-main07-v42r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-main07-v53-ffi-events.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-base-v77-build-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-base-v77-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-once-v74-build-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-once-v74-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-once-v76r1-linked-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-once-v76r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-v79-auto-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-v79-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-v79-verify-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-v80-ffi-events-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mainad0-v80-ffi-events.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v68-build-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v68-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v69-auto-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v69-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v69r1-auto-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v69r1-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v69r2-auto-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v69r2-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v70-linked-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v70-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v70r1-linked-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-map-prefix-main07-v70r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mark-frontier-mainad0-v85-build-run.sh
  • docs/audits/gc-rss-instructions-2026-10-03/primary-mark-frontier-mainad0-v85-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-old-hole-v34r1-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-old-hole-v34r1-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-once-advice-main07-v65-ffi-events.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-retain-release-main07-v58.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-scriptc022-real-v49.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-scriptc022-real-v56-config.py
  • docs/audits/gc-rss-instructions-2026-10-03/primary-scriptc022-v38.py
  • docs/audits/gc-rss-instructions-2026-10-03/private-arena-geometry-v27.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-elf-roots-v25.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-eden-v32-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-eden-v32-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-eden-v32-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-eden-v32-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-eden-v32-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-eden-v32.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-full17-v33r1-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-full17-v33r1-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-normal-auto-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-once-main07.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-real-collection-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-user-kernel-v44-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-entry-v36-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-idle-eden-v30-app-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-idle-eden-v30-app-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-idle-eden-v30-residency-test.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-idle-eden-v30-residency-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-idle-eden-v30.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-inputs.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-instruction-repeat-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-normal-auto-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-main07.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-negative-control-original-runner-failure.txt
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-negative-control-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-lazy-rss-negative-control.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-learned-floor-main07-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-learned-floor-main07-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-learned-floor-main07-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-learned-floor-main07-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-learned-floor-main07-normal-auto-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/private-learned-floor-main07-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-map-prefix-main07-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-map-prefix-main07-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-map-prefix-main07-normal-auto-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-map-prefix-main07-normal-auto-table.md
  • docs/audits/gc-rss-instructions-2026-10-03/private-map-prefix-main07-normal-auto-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34-mac-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34-provenance.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34.patch
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34r1-four-case-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34r1-four-case-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-old-hole-v34r1-linux-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-weak-holder-v24-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/private-weak-holder-v24.patch
  • docs/audits/gc-rss-instructions-2026-10-03/project-gc-window-comparison-v6r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/project-gc-window-comparison.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current-main0ed-build-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current-maine532-build-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current-maine532-linked-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-build-v14.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-census-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-census-v19.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-native-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-tag-v18r1-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-tag-v18r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-tag-v18r1-real-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-current0ed-zod-census-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-currente532-build-v1.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-currente532-linked-v4.py
  • docs/audits/gc-rss-instructions-2026-10-03/qb6-export-watch-v1.py
  • docs/audits/gc-rss-instructions-2026-10-03/queue-fixture-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/queued-root-headroom-guard-fix.json
  • docs/audits/gc-rss-instructions-2026-10-03/rejected-auto-products-v78-local-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/rejected-auto-products-v78-offload-complete.json
  • docs/audits/gc-rss-instructions-2026-10-03/reuse-window-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/scan-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/scriptc022-real-configured-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/scriptc022-real-v49-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/scriptc022-seven-case-verification.json
  • docs/audits/gc-rss-instructions-2026-10-03/shape-storage-observer-v17.py
  • docs/audits/gc-rss-instructions-2026-10-03/shared-window-source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/source-and-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/summarize-gc-comparison.py
  • docs/audits/gc-rss-instructions-2026-10-03/tag-word-current-main0ed-full-runtime-summary.json
  • docs/audits/gc-rss-instructions-2026-10-03/tag-word-v13-candidate-arm64.s
  • docs/audits/gc-rss-instructions-2026-10-03/tag-word-v13-control-arm64.s
  • docs/audits/gc-rss-instructions-2026-10-03/tag-word-v13-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/tag-word-v13.patch
  • docs/audits/gc-rss-instructions-2026-10-03/triage-baseline-map-crosscheck-v70.py
  • docs/audits/gc-rss-instructions-2026-10-03/verified-auto-text-dumps-v73-cleanup.json
  • docs/audits/gc-rss-instructions-2026-10-03/verify-and-join-comparators-main07-v55.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-and-join-comparators-main2026-v48.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-and-join-comparators-once-main07-v66.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-currentc170-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-currentc170-empty-pages-v29.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-currentc170-empty-pages-v29r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-currentc170-memory-v28r2.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-currentc170-noauto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-currentc170-v22.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-eden-v32-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-eden-v32-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-eden-v35r1-collection-test-r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-eden-v36-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-once-main07-v45-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-once-main07-v46-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-once-main07-v47-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-entry-v44-instruction-split.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-gc-final-instruction-profile-v1.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-gc-pages-v5-evidence.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-gc-paired-instruction-domains-v1.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-gc-runtime-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-gc-window-v6r1-inputs.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-historical-query-auto-v84-local.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-latest2026-v31-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-latest2026-v33-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-latest2026-v33r1-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-lazy-instruction-repeat-main07-v67.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-lazy-rss-main07-v51-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-lazy-rss-main07-v52-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-lazy-rss-main07-v54-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-learned-floor-main07-v59-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-learned-floor-main07-v59-mac.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-learned-floor-main07-v60-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-learned-floor-main07-v61-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-main07-ring-v50.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-main07-v39-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-main07-v40-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-main07-v42r1-linked-post.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-main07-v42r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-main07-v53-ffi-events.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mainad0-base-v77-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mainad0-once-v74-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mainad0-once-v76r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mainad0-v79-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mainad0-v80-ffi-events.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mainad0-v80-mac-ffi.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-map-prefix-main07-v68-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-map-prefix-main07-v69-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-map-prefix-main07-v69r1-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-map-prefix-main07-v69r2-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-map-prefix-main07-v70-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-map-prefix-main07-v70r1-linked.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mark-frontier-mainad0-v81-mac.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mark-frontier-mainad0-v82-mac.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-mark-frontier-mainad0-v85-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-old-hole-v34r1-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-old-hole-v34r1-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-once-advice-main07-v65-ffi-events.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-once-advice-main07-v65-mac-ffi-post.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-primary-gc-runtime-v24.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-private-currentc170-v24-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-private-currentc170-v25-auto.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-private-idle-eden-v30-build-r1.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-private-idle-eden-v30-build.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-private-idle-eden-v30-residency.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-private-idle-eden-v30r1-apps.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-rejected-auto-products-v78-local.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-retain-release-main07-v58.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-scriptc022-real-v49.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-scriptc022-real-v56-config.py
  • docs/audits/gc-rss-instructions-2026-10-03/verify-scriptc022-v38.py
  • docs/audits/gc-rss-instructions-2026-10-03/visitor-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/visitor-linux-validation.json
  • docs/audits/gc-rss-instructions-2026-10-03/visitor-vs-pool-full-runtime.json
  • docs/audits/gc-rss-instructions-2026-10-03/window-306-execution-projection-proof.json
  • docs/audits/gc-rss-instructions-2026-10-03/window-full-runtime-comparison.json
  • docs/audits/gc-rss-instructions-2026-10-03/window-v6-timeout-repair.json
  • docs/audits/gc-rss-instructions-2026-10-03/window-vs-immediate-normal-auto.json
  • docs/audits/gc-rss-instructions-2026-10-03/window-vs-main69-baseline-normal-auto.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

Review: #11781 at 79c934b352 (base f6c873d996)

Verdict: I found no GC-safety defect in the code. The remembered-parent filter, the carrier no-op skip and the visitor instantiation each change the same slots and edges as before, as far as I can trace. The lazy malloc set is correct. The page-release fix is right in principle. Do not mark this ready yet, for three reasons:

  • the head has not passed the Linux runtime suite;
  • the visitor revision has not been validated on any platform;
  • there is no candidate measurement for any claim in the title.

The Linux page-release change is a real behaviour change: the advice used to be a no-op (EINVAL), and now it is an eager discard. It needs its own fault, instruction and RSS numbers. It also duplicates a helper that already exists. The PR should be split.

This was a read-only review: I built nothing and ran nothing. Everything below comes from reading the source on the PR head.


BLOCKER (for leaving draft)

B1. The head is not validated on Linux, and the visitor revision is not validated anywhere.
PROGRESS.txt and inline-source-and-validation.json ("validation": "pending") say so directly. The last Linux pass (4,816) covers the scan revision only. The pool revision (decommit.rs, block.rs:233) has only a macOS pass plus the isolated 3-test kernel probe. That gap matters because the pool revision is exactly the change that behaves differently on Linux. On macOS, MADV_FREE is lazy, so pages keep their contents until there is memory pressure. On Linux, DONTNEED zero-fills them at once.
Fix: before marking ready, run on the exact head:

  • the Linux runtime, FFI and events suites at --test-threads=1;
  • the gc-moving-witnesses fixtures and one PERRY_GC_SCHEDULE_SEED stress run, reporting copied_objects > 0 and the protected from-space bytes.

B2. The pool release has no measurement, and on Linux it changes behaviour.
decommit.rs:28-49, block.rs:221-236. Before this PR, the unaligned madvise returned EINVAL on Linux, so pooled pages stayed resident with their contents. Now every block_pool_put makes a syscall and zaps the pages, which costs a TLB shootdown when worker threads share the mm. Every block_pool_take then refaults about 256 4 KiB pages per MiB, and the kernel zeroes each one. tsc runs 82 fulls per transpile, so this could cost instructions, sys time and minor faults as easily as it saves RSS.
The pool cap also needs re-measuring. Its comment (block.rs:160-166) gives the 64 MiB optimum from tree.ts on a Mac mini M1, where the advice was lazy. Linux never had working advice, so that optimum says nothing about Linux.
Fix: A/B the pool arm against the scan arm on tsc and Zod. Report the following per run, not as medians alone:

  • peak RSS;
  • instructions;
  • minor faults;
  • sys time;
  • full and minor collection counts.

Do the same on one worker-thread program. Then re-check the cap.


SHOULD-FIX

S1. A second interior-page decommit helper: reuse the existing one, and on macOS it is the weaker of the two.
arena/block/decommit.rs:6-49 duplicates buffer/detach.rs:99 (decommit_payload_pages, which already rounds inward and already handles the platforms). arena/quarantine.rs has a third page_size().
The existing helper uses MADV_FREE_REUSABLE on macOS. Its own comment says plain MADV_FREE "only reclaims under memory pressure, so RSS wouldn't visibly shrink". The new helper keeps plain MADV_FREE on macOS (decommit.rs:40-41), so the pool change probably does nothing for macOS RSS. That is UNVERIFIED: no macOS RSS measurement exists.
Fix: move one helper into a shared module and call it from both detach and the pool. On macOS, use MADV_FREE_REUSABLE, and pair it with MADV_FREE_REUSE in block_pool_take so the footprint accounting stays right when the block is reused.

S2. A second block-skip mechanism for the same walk.
walk.rs:231 new_remembered_parents() filters blocks with retain. walk.rs:320 skip_blocks_where already does this, and verify.rs:786-789 (rebuild_minor_old_to_young_remembered_set → arming_walk_skips_block) already skips wholly-nursery blocks in the arming walk. The arming walk now has two stacked filters with different predicates. One of them (arming_walk_skips_block) has a sabotage test; the new one is covered only by the equivalence tests. The arming walk also starts skipping Longlived blocks, which changes note_reconstruct_objects_walked. The PR does not mention this.
Fix: use one predicate, "uniform generation is Nursery or Longlived", and apply it through skip_blocks_where from both rebuild constructors. Delete arming_walk_skips_block, or make it that predicate, and point the existing sabotage at it. Update the doc at verify.rs:775-785, which still says "wholly NURSERY".

S3. Scope: split the PR.
It contains five independent things:

  1. lazy malloc set, remembered-parent filter and carrier skip;
  2. the pool page-release fix;
  3. the visitor instantiation, which needs a code-size and instruction trade-off;
  4. the turnloop queue-fixture fix, a pre-existing flake on main that is unrelated to GC (turnloop_pool/tests.rs:396-424);
  5. about 4,000 lines of audit JSON.

Each should land or fail on its own evidence. The queue fix should go first as a standalone PR, with an issue for the flake.
The audit artefacts (docs/audits/gc-rss-instructions-2026-10-03/, including the 3,284-line campaign-attribution.json) contain internal host names and paths (internal build-host names and absolute /root/... paths). They are progress notes rather than repo documentation. Keep them out of the repo, or reduce them to a short summary without host paths.

S4. The evidence can't support a timing A/B as recorded.
baseline-tsc-diagnostic.json: instructions are stable (65.75 B ±0.02%). Cycles are 41.3 / 41.6 / 30.8 B, and user time is 8.85 / 8.86 / 7.57 s. The host was not quiet, or the frequency varied, so cycles and time from it are not usable.
The fulls count (82) comes from one separate trace run, not from each measured run. The baseline is also --no-auto-optimize at ebc858c. The equivalence to f6c873d by crate tree hash holds, but that is not the same build as the planned normal-auto A/B.
Fix: for every A/B row, report instructions plus full and minor counts from the same run. Record a distinct binary hash for each arm, build both arms with the same driver and the same runtime mode, and report time only from a quiet host.

S5. No test covers the production page-release call site, and macOS is never asserted.
decommit.rs:67 tests release() on an mmap of its own. If block_pool_put stopped calling release, or called it with the wrong range, nothing would fail. On macOS, release()'s return value is never asserted, so a rejected advice would pass silently. That is the same failure this PR fixes on Linux.
Fix: add a test through block_pool_put on a 16-byte-aligned alloced block. On Linux, check residency with mincore. On every Unix, assert that release returns more than 0.


NIT

  • decommit.rs:35-37: the comment says Linux MADV_FREE "retains pages in RSS until pressure". Before this PR, the Linux advice never took effect at all (EINVAL). Say that, so later readers don't take the old numbers as lazy-free numbers.
  • walk.rs:227-230: "global block indices still match the full-cycle census" is true only because each retained entry keeps its own block_idx, and ensure_current_block indexes skip_blocks by that field. Say so.
  • verify.rs:695: old_to_young_rebuild_objects_scanned changes meaning. It now excludes nursery and longlived blocks. Note this in the changelog so trace comparisons across this PR aren't misread.
  • turnloop_pool/tests.rs:416: accepted == pool_stats().threads assumes threads >= 1 and a queue capacity of at least threads. Assert both preconditions explicitly.
  • layout_slot_visit.rs:137 / trace.rs:1817: #[inline(always)] now pulls the whole layout-descriptor body into trace_heap_rewrite_slots and remember_retained_old_to_young_slots. Report the .text delta of perry-runtime and of a linked tsc binary next to the instruction delta.

Looks good

  • Remembered-parent filter is exact. barrier_parent_needs_remembering(user_ptr, true) (barrier/mod.rs:1219) accepts an arena parent only when it is generation Old. Arena objects carry GC_FLAG_ARENA, so malloc_gc_parent_addr is false for them, and longlived parents were already never remembered.
    • The filter reads the same generation map as the per-object check, and keeps None/mixed ranges.
    • PromotedYoung blocks are generation Old at retag, so they are kept regardless of which arena owns them.
    • The malloc-parent walk is untouched.
    • No minor can start inside a budgeted full (gc_check_trigger refuses while gc_budgeted_cycle_active), so classifying at snapshot time gives the same answer as classifying at visit time.
    • All state involved is per-thread, so worker heaps are unaffected.
  • Carrier skip is exact. old_generation_carrier_already_noted reads the same two flags that note_old_generation_carrier sets, which makes the skipped note a no-op. note_full_trace_carrier still runs first. The keys edge and every slot are still emitted, so tracing still follows the shape record exactly (P4).
  • Visitor instantiation. INLINE_LAYOUT only switches dispatch. visit_slots is literally visit_slots_inline (gc/layout/child_slots.rs:493-511), so the enumeration and its order are unchanged.
  • Lazy malloc set. Inactive threads never insert into it (gc_malloc and the batch path both guard on malloc_registry_available). Activation reserves the heavy capacity if the heavy latch was already set. The test is strengthened from < HEAVY to == 0 and now covers late activation.
  • madvise fix. Inward rounding is correct, including the overflow and zero-length cases. The Linux test asserts that its subject was live: exactly 3 pages nonresident and both neighbors intact. On macOS, if XNU rounds an unaligned range outward (UNVERIFIED), the old call could also have discarded neighbor bytes on the boundary pages, and this PR fixes that too.
  • Gate integrity. No baseline, tolerance or ratchet changes, and no new env knobs. The new equivalence tests compare against a whole-heap reference and assert their subject was live: old_pages and external_pages are non-empty, at least 40,000 visits are avoided, and PromotedYoung is asserted.
  • ABI and shape campaign. No ObjectHeader, perry-abi, runtime_abi.tsv or perry-ffi change; the 8-byte header is not in this PR. No file overlaps fix(codegen): region Number proof judges loop condition and update writes #11782, fix(gc): re-read imported-ctor args, root the key-add receiver, refuse ConstFn finalize on a keys-identity miss #11783 or perf: class accessors validated by shape facts, called directly (#10498) #11784, and main has not touched these paths since the base.

Questions for the author

  1. Why plain MADV_FREE on macOS rather than the existing MADV_FREE_REUSABLE path? Is any macOS RSS effect measured?
  2. How many blocks pass through block_pool_put and block_pool_take per tsc transpile? What minor-fault and sys-time increase do you expect on Linux?
  3. Does any production path read a header inside a released block, for example a stale forwarding lookup or a conservative candidate? On Linux such a read now sees zeros, where it used to see stale contents. Has a PERRY_GC_SCHEDULE_SEED or quarantine run covered the pool revision?
  4. Were the arming-walk counts and their tests checked for the new Longlived skip?
  5. Do you intend to merge the audit JSON, or is it review material only?
  6. Is the queue-fixture flake filed against main? Under what host load did the 30 clean reruns run?

@proggeramlug
proggeramlug force-pushed the rss-gc-runtime-20261003 branch 3 times, most recently from 2396510 to 07079e0 Compare October 3, 2026 13:18
@proggeramlug
proggeramlug force-pushed the rss-gc-runtime-20261003 branch 4 times, most recently from 9e4cbac to 56cc90b Compare October 3, 2026 23:17
@proggeramlug proggeramlug changed the title perf(gc): reduce RSS and redundant GC work (progress draft) perf(gc): reduce retained arena RSS and redundant GC work Oct 4, 2026
@proggeramlug
proggeramlug force-pushed the rss-gc-runtime-20261003 branch from 9c9e599 to 41e68ed Compare October 4, 2026 06:18
@proggeramlug
proggeramlug marked this pull request as ready for review October 4, 2026 06:18
@proggeramlug
proggeramlug merged commit ac575ae into main Oct 4, 2026
26 checks passed
@proggeramlug
proggeramlug deleted the rss-gc-runtime-20261003 branch October 4, 2026 06:18
@proggeramlug proggeramlug added the ready PR triaged: CodeRabbit feedback + conflicts addressed label Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready PR triaged: CodeRabbit feedback + conflicts addressed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant