Skip to content

sched: bound pinned wake scans by outstanding home holds - #964

Draft
ryanbreen wants to merge 2 commits into
mainfrom
sched/3f-pr2b-pinned-wake-scan-bound
Draft

sched: bound pinned wake scans by outstanding home holds#964
ryanbreen wants to merge 2 commits into
mainfrom
sched/3f-pr2b-pinned-wake-scan-bound

Conversation

@ryanbreen

Copy link
Copy Markdown
Owner

A pinned wake currently arms a cumulative counter that makes subsequent scheduler entries scan the thread list in the shipped no-feature profile. Track outstanding home-CPU holds and guard scan entry on the local balance; retire delivery and discarded-wake credits with saturating arithmetic.

The new array is a reachability counter, not a cumulative failure census field. The existing failure counters remain cumulative. The normal-context census emitter also publishes [PINNED_HOLDS_OUTSTANDING:count=0]. Scheduler.rs is not Tier 2; this PR edits no Tier-1 or Tier-2 source and adds no hot-path logging.

Validation at cab966e:

  • Structure: 66/66 after correcting the development emitter's extra logging call.
  • Strict ARM: 3/3; service: max 2/2 and cortex-a72 2/2.
  • Production: final gate invocation, 1/1; outstanding count 0 at production-serial.txt:177.
  • Guard deletion and decrement deletion mutations: RED. Extracted-method oracle: baseline peer/post-delivery walks 128/128; changed source 0/0 after a held wake is delivered, with outstanding home count 0. This is host execution, not a live forced-hold boot oracle.

Draft: x86 acceptance blocked by issue 963. The first Beast preflight timed out at 300 seconds under load. The single retry with BREENIX_STRUCTURE_SUITE_TIMEOUT_SECS=900 passed that suite in 368 seconds, but gate_qmp_backstop_structure failed hang must reach dump. The gate stopped before kernel compilation or boot. This is UNATTRIBUTED under the plan's stop rule; no further gate retry was made.

The brief's discard requirement adds completed-pass reconciliation beyond the plan's delivery-only decrement. A CPU that does not re-enter the scheduler still has no wall-clock recovery bound. This PR does not eliminate scans, measure cycles, introduce production pins, or claim a prerequisite before PR 4a; it precedes PR 4b.

Round record, refreshed citations, claim-lint records, raw serials and per-suite archives:
docs/planning/green-program/aarch64-testing/3F-PR2B-2026-09-07.md and its serials/3f-pr2b/ directory. Chips removed: 0.

ryanbreen and others added 2 commits September 7, 2026 22:30
Keep per-CPU reachability credits separate from cumulative failures.
Retire delivered and discarded credits under the scheduler lock and guard
scan entry on the local balance. Add source ratchets and extracted-method
before/after probes covering the guard, balance and discard dispositions.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Record refreshed source citations, the forced scan delta and mutation
results, architecture gate transcripts, the Beast preflight timeout,
and the bounded scope of the scan accounting change.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
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