perf(rallocator): consolidate v1 and Seismograph improvements - #764
Draft
Ralf Biedert (ralfbiedert) wants to merge 39 commits into
Draft
Ralf Biedert (ralfbiedert) wants to merge 39 commits into
Ralf Biedert (ralfbiedert) wants to merge 39 commits into
Conversation
Integrate accepted medium allocation, retention, remote accounting, realloc, cached-region lookup, and snapshot bitmap improvements on current main. Reconcile snapshot ownership and registry maintenance while retaining bounded warm tables. Remove snapshot response copies, correct runtime accounting and feature wiring, and preserve isolated nextest-compatible mapping coverage. The final combined Linux model and performance qualification remains pending; historical component results are not a claim of an overall combined speedup. Rejected TLS and experimental v2 changes are excluded. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Exercise arena cleanup through a linked-library snapshot source and validate peak labels, accessors, and short output buffers. Keep manual profiling probes outside automated coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Align both payload placement and discriminator shifts for the stored header pointer, including conservative mapping-size checks. Guard the fallible heap allocation in the owner-exit fixture. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Cover loader progress, source precedence, event stack release, and offline UI states without reducing production coverage requirements. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Inject memory queries and cold-path failures without changing allocator defaults. Consolidate equivalent resize rejection conditions while preserving every defensive check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #764 +/- ##
=========================================
Coverage 100.0% 100.0%
=========================================
Files 640 648 +8
Lines 85528 91129 +5601
=========================================
+ Hits 85528 91129 +5601
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Cover monitor contention, deadlines, spawn failures, and recorder recovery without weakening coverage gates. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Exercise custom modes, sampling, backtraces, navigation, and rendered settings. Use exhaustive field dispatch instead of duplicate mode checks and omit unreachable empty-value formatting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the single-use const constructor without changing retirement behavior or coverage policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep native stress and I/O coverage while preventing unsupported or disproportionately expensive Miri execution. Localize the older allocator-api dependency so cargo-delta no longer marks the whole workspace modified, and make deadline-sensitive lock acquisition immune to spurious CAS failure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep medium-allocation internals mutation-tested while excluding the synthetic permanent-null boundary, and exclude scheduler-dependent monitor polling from line coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Centralize medium-cache eligibility and exclude performance-only size mutations that make workspace mutation runs exceed their process timeout. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use checked size arithmetic and a nonzero batch count so mutation testing cannot turn reservation metadata into invalid pointer or extent state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Prevent generated mutations from creating non-progressing bitmap scans or null-pointer traversal while preserving the allocator's behavior and reference tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove redundant let-scrutinee parentheses around unsafe pointer traversal expressions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid whole-structure pointer retags during concurrent region scans, keep unsupported fault injection and stress paths out of Miri, and make UI rendering tests independent of the host realtime clock. Exclude the allocator corruption abort path from in-process coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bound telemetry bitmap iteration to the platform-specific region slice count and avoid the profiling allocator wrapper under Miri. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Clear a stale admission deadline when a later quota acquisition fully satisfies the requested retention credit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Summary
Consolidates the Rallocator v1 performance work and Seismograph snapshot/monitor improvements: medium-span caching and reclamation, eligible in-place reallocation, remote-accounting improvements, independently owned snapshot storage, and an offline snapshot viewer.
Public API changes
rallocator::tuning_telemetrybehind the existingtuning-telemetryfeature, with explicit session control and allocation-free counter observations.PeakLiveBytesScope,Stats::peak_live_bytes_scope, and optional lifetime/sample peak accessors. Rallocator reports aggregate-query sample peaks, not lifetime high-water marks.seismograph::snapshot::snapshot_collection_active(); nosnapshot_arena_active()alias is retained.seismograph view <SNAPSHOT-FILE>for read-only interactive inspection of saved captures.Existing allocator entry points and configuration remain unchanged. Eligible allocations can resize in place through the existing
GlobalAlloc::reallocinterface.Validation so far
msvc_spectre_libspackage because this machine lacks Visual Studio Spectre-mitigated CRT libraries.Draft while validation continues. The complete local
just anvil-prgate stops at the missing Spectre libraries; coverage, runtime-analysis, mutation, Linux and ARM results are not yet all confirmed. Hosted CI is the next source of actionable failures.