Skip to content

Pause background storage scans during graphical use - #18

Open
zachspartofaday wants to merge 3 commits into
mxhm11cr:mainfrom
zachspartofaday:codex/defer-desktop-storage-scans
Open

zachspartofaday wants to merge 3 commits into
mxhm11cr:mainfrom
zachspartofaday:codex/defer-desktop-storage-scans

Conversation

@zachspartofaday

@zachspartofaday zachspartofaday commented Nov 2, 2026 •

Copy link
Copy Markdown

Opening a Linux desktop leaves the environment manager's background storage walk running through every installed rootfs and exchange. Large environments consume CPU and filesystem bandwidth during interactive use.

Cancel and defer automatic storage measurement while any native graphical viewer is presented or a retained desktop transport serves external output. A process-wide activity gate with independent viewer tokens covers every manager, including desktop File Sharing and other application scenes. Closing one viewer cannot resume scans while another viewer or external transport remains active.

Keep complete cached totals, check cancellation between files, reject obsolete completions, and start the refresh interval after a completed scan. Explicit Storage settings measurement remains available. This PR contains only the storage lifecycle fix, regression coverage and evidence; SteamOS integration changes are outside its scope.

The fresh independent GPT-6.1 Sol high review passed at 0d015d3f6a6edc9ce06f9ad39165db9fcea60035 with no actionable findings and independently reran the lifecycle and Foundation checks. That review was local; it is not a submitted GitHub approval. The external Codex review on the matching fork PR also completed for the same commit, with no findings recorded and a clean review receipt. This is a review comment, not a formal GitHub approval.

Before/after evidence

Fresh paired physical iPad Air 13-inch (M4), iPadOS 27.2, ARM64 interpreter runs used preserved local SteamOS/Plasma integration sources, identical graphics/runtime bridge/UI-test sources, 1560 × 1112 output and the same graphics settings. The candidate adds the current storage runtime patch. Three native snapshots cover matched quiet windows before scripted interaction, with nominal thermal state and no input.

Policy CPU seconds in about 30 seconds CPU use (100% = one core)
Background scan continues 37.630 125.4%
Shared graphical activity pauses the scan 12.220 40.7%

This is about 67.5% less process CPU time in one paired quiet window. It is not an FPS, battery-life or sustained-performance claim. LinuxRunner can execute guest tasks on multiple host threads; 100% is a CPU accounting unit, not a one-core restriction. The original cover-based result is retained separately as historical evidence.

Method, limits and recalculation commands · Fresh allowlisted counters, binary UUIDs and source hashes

Supported Arch reference

The supported Arch Linux ARM default desktop also passed paired physical iPad tests: Openbox + LXQt panel + PCManFM-Qt, Xvfb/RFB at 960 × 540, Core Graphics presenter, socket capture and default VNC timing. Both variants reached desktop readiness, launched xterm, accepted synthesized touch/text and displayed aarch64.

Storage policy CPU seconds in about 30 seconds CPU use (100% = one core)
Background scan continues 34.377 114.6%
Shared graphical activity pauses the scan 9.893 33.0%

This is 71.2% less process CPU time in one sequential paired quiet window. Selected samples had nominal thermal state, no pointer/key events and no display updates. The same Arch, SteamOS and Alpine installations were present in both runs; storage accounting walks all roots, so this is not an Arch-only filesystem measurement. It does not establish FPS, input latency, battery life, sustained performance or actual Magic Keyboard behavior. The Arch and SteamOS graphics workloads differ and are not a matched graphics comparison.

The native Unix-socket path fix needed for Arch desktop startup, graphics settings and test instrumentation were held fixed between variants and remain outside this PR. Comparing 676 source/control file hashes found differences only in the three storage runtime files. Retained local source manifests are not a binary-equivalence proof or a public integration reproduction kit.

The new commit 6bb5836b470433c503174cde039f48959ae22544 changes only documentation and allowlisted evidence; product runtime remains identical to 0d015d3. A fresh independent GPT-6.1 Sol high review passed this exact evidence commit with no actionable findings, validating arithmetic, provenance and limits against the retained receipts. Physical results were supplied evidence for that review, not independently rerun. This local review is not a submitted GitHub approval.

Arch counters, binary UUIDs and source hashes · Method and limitations

Validation

  • Standalone unsigned Release iOS build passed.
  • Lifecycle/native/diagnostics and Foundation checks passed. Coverage includes existing/new managers, overlapping owners, external-only policy, disconnect/disable/detach, cleanup, cancellation races, complete-cache persistence and throttling.
  • Before/after physical iPad integration tests passed desktop readiness, Konsole launch, synthesized touch/text input and visible aarch64 output.
  • Native host fixtures use Foundation stubs. UIKit lifecycle delivery, simultaneous physical scenes and connected-monitor operation have not been qualified on hardware. The separate guest X11 contract was not run because it requires its own guest fixture.

Consolidated submission context

This storage-only PR remains separate. The other nine reviewed fork changes were consolidated into three companion submissions: #19 virtual GPU compatibility, #20 desktop input/capture/presentation, and #21 SteamOS installation/guest graphics. All ten component PRs are merged into our fork; no upstream merge is requested automatically.

The final 6bb5836 head also completed external Codex review with no findings: current-head review receipt. That is a review comment, not a formal GitHub approval.

@zachspartofaday zachspartofaday changed the title Pause background storage scans while Linux graphics are visible Pause background storage scans during graphical use Nov 2, 2026
@zachspartofaday

Copy link
Copy Markdown
Author

Added the supported Arch Linux ARM A/B evidence in 6bb5836b470433c503174cde039f48959ae22544; the storage runtime code is unchanged.

Both physical-device variants passed desktop readiness, managed xterm launch, synthesized tap/text and visible aarch64. In matched quiet windows of approximately 30 seconds, process CPU use was 114.6% before versus 33.0% after (100% = one core), about 71.2% less CPU time in this pair.

This is one sequential idle comparison. Both runs kept the same Arch, SteamOS and Alpine roots, all of which storage accounting scans. It is not an Arch-only scan, graphics-speed comparison, FPS/latency/battery/sustained benchmark or actual Magic Keyboard qualification. The native socket fix and graphics/test integration were held fixed outside this PR. Nominal thermal state and no pointer/key events were recorded in the selected window.

Fresh independent GPT-6.1 Sol high review passed this exact documentation/evidence commit with no findings. The reviewer independently checked the counters, arithmetic, 676-file source-manifest comparison and patch provenance; device runs were supplied evidence. This is a local review, not a formal GitHub approval.

Allowlisted counters and provenance · Method and limits

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.

1 participant