Skip to content

The records oracle idles 60 s before every timed das cell; ledger rows 138 and 140 carry their verdicts - #4016

Merged
borisbat merged 6 commits into
masterfrom
bbatkin/ledger-140
Sep 13, 2026
Merged

The records oracle idles 60 s before every timed das cell; ledger rows 138 and 140 carry their verdicts#4016
borisbat merged 6 commits into
masterfrom
bbatkin/ledger-140

Conversation

@borisbat

Copy link
Copy Markdown
Collaborator

Behavior change: the records oracle idles 60 s before every timed das cell (was 12 s) - an oracle board takes longer per box.

Why. The oracle's first read after a big cell lands 20-33% under its stored mean and spends a FAIL and a retry slot. The previous cell's heat outlives the 12 s reclaim settle: on the M5 Max the GPU still runs 990-1420 MHz instead of 1620 when the next cell starts.

What changes.

  • --oracle-settle (default 60) idles before each timed oracle das cell on every leg; the reclaim settle stays 12 s.
  • The three sleep-if-positive helpers fold into one settle(seconds); the retry settle goes through it too.
  • Ledger row 138 carries the throttle's cause and provenance; row 140 closes the CPU ASR shortfall as core placement on the box, not a code regression.
  • Three checklists fix what applying them to this diff surfaced (served-turn and board-cell definitions, figure rules keyed on legs of a turn, diff-scoped records rules, one override boundary, every STYLE037/038 suppression spelling).

Observable behavior.

  • oracle cell after a big cell reads 20-33% low and retries -> reads within 1% first time
  • --oracle --legs metal on the M5 board -> about 17 min longer (21 cells x 48 s of idle)

Where to look. The three settle(cfg.oracle_settle) sites in performance/gen_bench_records.das and the two rewritten ledger rows.

Validation, claims, ledger

Validation

  • Full preflight ran once; compile-sweep was red on a stale binary (the LSP watchdog merge added a fio binding after the last build) and passed on the targeted rerun after an incremental rebuild.
  • benchmarks/REVIEW.md applied by hand to the driver: no instrument, clock, or kernel dispatch is added, so its rules do not fire.

Claims - stated, not tested

  • The --oracle-settle arm, its three sites, and the folded settle guard have no test: the tool drives model processes for hours and its three sibling knobs carry none either. The measurement stands in: five of five reproductions of the cold read with the board's sequence, 60 s and 120 s settles reading Nominal within 1%. A break would show as an oracle board whose first cell after a big one fails and passes its retry.
  • 60 s is the M5 Max's number; the Vulkan boards show the same first-read drop but were not instrumented.

Not done

  • Row 138 keeps the thermal-state wait (NSProcessInfo.thermalState) as the unquirk that replaces the fixed number.
  • Two lint candidates from the checklist review: a REVIEW.das cell for the records/mtp/ engine-stamp rules, and the defaults/ version-pin compare in check_defaults_profiles.

borisbat and others added 4 commits September 12, 2026 17:17
…ll against the August 30 records is core placement on the box and a best-of-two record, not a code regression - best reps equal between the recording commit and master's head, medians 2.5% apart inside the scatter - and the unquirk is a placement-aware instrument for the CPU rows

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…'s heat throttles the GPU to 990-1420 MHz through the oracle's 12 s settle, reproduced five of five with the board's sequence and cured by a 60 s settle; the unquirk is a thermal-state wait before a timed cell

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…med das cell on every leg: the previous cell's heat outlives the 12 s reclaim settle and a hot GPU or CPU reads a clean cv 20-30% low, spending a FAIL and a retry slot on a cold first read; ledger row 138 keeps the thermal-state wait as the unquirk that replaces the fixed number

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… - the exe, tier, overrides, box and the powermetrics sampler behind each figure - and the Vulkan and CPU-leg claims narrow to what was read; the oracle's cost lines in PROFILE.md and BRINGUP.md follow the 60 s cool slot; three checklists fix what applying them to this diff surfaced: the served-turn definition names the property, an oracle re-measure is not a board cell, the whole-turn figure rule drops its enumeration and mechanism sentence, the timing-rig trigger covers a rig that reads a child's clock, the ledger routing names who owns rig rows, the override clause keeps one boundary, the STYLE037/038 rule binds every suppression spelling, and the records/mtp rules are diff-scoped with the settle pair merged

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 13, 2026 01:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new settle helper uses a //! doc comment in a non-attaching position and multiplies seconds * 1000 as int before casting, which can overflow for large values and should be corrected.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Updates dasLLAMA’s performance “records oracle” workflow so oracle runs idle longer before each timed das-cell (default 60s vs 12s) to reduce post-heavy-cell thermal throttling skew, and documents/records the updated measurement rationale in module docs and checklists.

Changes:

  • Add --oracle-settle (default 60) and apply it before each timed oracle das cell; keep reclaim settle behavior separate.
  • Fold multiple “sleep-if-positive” helpers into a single settle(seconds) helper (also used for retry settle).
  • Update dasLLAMA measurement/review documentation and follow-up ledger rows to reflect the revised interpretation and the new settle behavior.
File summaries
File Description
modules/dasLLAMA/REVIEW.md Clarifies checklist routing and override/suppression rules language.
modules/dasLLAMA/REVIEW_MEASUREMENT.md Tightens definitions around served-turn legs, board cells, and provenance requirements.
modules/dasLLAMA/PROFILE.md Documents the new oracle settle cost and the motivation/observations behind it.
modules/dasLLAMA/performance/REVIEW.md Refines performance records checklist wording and diff-scoping for records artifacts.
modules/dasLLAMA/performance/gen_bench_records.das Implements --oracle-settle and consolidates settle helpers used across oracle + retries.
modules/dasLLAMA/followup_general.md Updates ledger rows (138/140) with revised findings and next-step “unquirk” direction.
modules/dasLLAMA/BRINGUP.md Updates oracle-mode operational guidance to reflect the new settle behavior.
Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread modules/dasLLAMA/performance/gen_bench_records.das Outdated
…as the ruler spells it, and its note is a plain comment - a doc comment above a def does not attach

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 13, 2026 01:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes are cohesive, low-risk, and the new --oracle-settle behavior is consistently applied at the intended oracle call sites with corresponding documentation updates.

Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

…rseding clean edit the clean publish lands and nothing stale lands after it - a broken-buffer publish that finished inside the gap is legitimate, and on a fast CI runner it did

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 13, 2026 02:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The updated LSP test’s publishDiagnostics filtering can match unrelated documents, risking false passes/failures unless it filters by params.uri.

Get a fresh assessment by requesting another Copilot review.

Review details

Suppressed comments (1)

tests/lsp/test_lsp_protocol.das:371

  • The stale counter increments on any non-empty publishDiagnostics while waiting for the definition response, but it does not check the diagnostics are for the test document uri. Filtering by params.uri avoids false failures if the server publishes diagnostics for some other open/managed file during this window.
                let def_resp = read_until(r) $(js) {
                    if ((js?["method"] ?? "") == "textDocument/publishDiagnostics" && diagnostics_of(js) != 0) {
                        stale++
                    }
                    return (js?["id"] ?? -1) == 2
  • Files reviewed: 8/8 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread tests/lsp/test_lsp_protocol.das
@borisbat
borisbat merged commit 0f2a553 into master Sep 13, 2026
30 checks passed
@borisbat
borisbat deleted the bbatkin/ledger-140 branch September 13, 2026 02:55
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.

2 participants