Repository navigation
Conversation
Under ToyOS, r1-r3 of PR #1131 measured APST at 50x and 500x on the T14. The drive rests in PS4 between I/Os, but the package stays in PC2 at 6-7 W either way. "APST is the larger share and comes first" no longer holds. What remains, with or without APST: - a 6.3 W baseline, against Linux nomodeset's 2.8 W in the same PC2; - 2-20 seconds a minute 4 W above it with every core in C7, against Linux's 1-2. r4 times them against the kernel's diary and the drive's I/O. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under PR #1131's r4, each idle second was set against the kernel's diary and the drive's I/O. The excursions follow none of: task wakes, timer fires, idle entries, CPU C0, or NVMe commands. The PC2 issue says so, with the drive-state rates measured over r1-r4 and the one link setting that differs from Linux's. The slow-write issue gets the arm tally (4/4 boots without APST slow, 2/5 with) and the drive's HMB fields. HMPRE and HMMIN are 0 and Feature 0Dh is refused, so a missing Host Memory Buffer is not its cause. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under ToyOS, r1-r3 of PR #1131 measured APST at 50x and 500x on the T14. The drive rests in PS4 between I/Os, but the package stays in PC2 at 6-7 W either way. "APST is the larger share and comes first" no longer holds. What remains, with or without APST: - a 6.3 W baseline, against Linux nomodeset's 2.8 W in the same PC2; - 2-20 seconds a minute 4 W above it with every core in C7, against Linux's 1-2. r4 times them against the kernel's diary and the drive's I/O. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under PR #1131's r4, each idle second was set against the kernel's diary and the drive's I/O. The excursions follow none of: task wakes, timer fires, idle entries, CPU C0, or NVMe commands. The PC2 issue says so, with the drive-state rates measured over r1-r4 and the one link setting that differs from Linux's. The slow-write issue gets the arm tally (4/4 boots without APST slow, 2/5 with) and the drive's HMB fields. HMPRE and HMMIN are 0 and Feature 0Dh is refused, so a missing Host Memory Buffer is not its cause. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The PC2 issue's APST figures came from the benchmark image. That image started no display driver until #1149, so they read the GOP's display. In PR #1131's r6, Linux's own back-to-back write_4k_fsync on the T14 ran 4.73-5.02 ms in all three runs, against 1.0-1.08 ms in r3. The slow durable-write mode is not ToyOS's alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR #1131's r7 split the T14's first durable write after idle, command by command, with no command of the driver's own. The drive's wake (the first write and first Flush, about 13 ms) matches Linux's 12 ms. ToyOS's excess is the commit's second Flush, 2.25-2.5 ms after a wake against 0.36-0.43 ms warm, plus about 1 ms of host time between commands. Fs::sync flushes, writes the superblock and flushes again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…no FUA By the coordinator's ruling of 2026-11-05: - issues/std-file-lock-answers-ok-and-locks-nothing.md stays owned by issues/toyos-builds-itself.md's M4. - The storage track records what #1131 is assigned with: a native DATA journal entry is written as a flush, the entry, a flush (three flushes for an entry naming itself, `write_entries`), where upstream bcachefs writes one preflushed FUA write, and FUA is missing end to end: no flag on `toyos-blockring`'s Write, no FUA bit set by the nvme driver or usbd, and none asked for by bcachefs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…no FUA By the coordinator's ruling of 2026-11-05: - issues/std-file-lock-answers-ok-and-locks-nothing.md stays owned by issues/toyos-builds-itself.md's M4. - The storage track records what #1131 is assigned with: a native DATA journal entry is written as a flush, the entry, a flush (three flushes for an entry naming itself, `write_entries`), where upstream bcachefs writes one preflushed FUA write, and FUA is missing end to end: no flag on `toyos-blockring`'s Write, no FUA bit set by the nvme driver or usbd, and none asked for by bcachefs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…no FUA By the coordinator's ruling of 2026-11-05: - issues/std-file-lock-answers-ok-and-locks-nothing.md stays owned by issues/toyos-builds-itself.md's M4. - The storage track records what #1131 is assigned with: a native DATA journal entry is written as a flush, the entry, a flush (three flushes for an entry naming itself, `write_entries`), where upstream bcachefs writes one preflushed FUA write, and FUA is missing end to end: no flag on `toyos-blockring`'s Write, no FUA bit set by the nvme driver or usbd, and none asked for by bcachefs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. Where Identify Controller's APSTA says the controller supports them, the driver now sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2) at bring-up and again after every reset, which returns features to their defaults. It logs every power state and the table it set; a controller that refuses the table is reported and served from its operational state. The table is built by `nvme-apst`, a pure crate nested in the driver, from the drive's own power state descriptors (Figure 313), with no table of drives: - a target is a non-operational state whose stated entry plus exit latency, the most the first I/O after idle waits (§8.1.17), is within 100 ms; a state that reports either as 0h is never one; - each state goes to the deepest admitted state of the first tier that holds one deeper than itself, reporting no higher idle power: a round trip within 15 ms after 100 ms idle, else one within 100 ms after 2 s. osbench's `persist.write_4k_fsync_after_idle` times the same durable write as `persist.write_4k_fsync`, each after 10 s idle, on both systems, and Linux's `nvme` group reads the controller's APST table through the UAPI admin passthrough, in the form the ToyOS driver logs its own. The record `a-data-commit-flushes-the-drive-twice` this branch carried is gone: it described a commit path #1152 deleted, and the journal's forced write removed the second Flush it named. Squashed from nvme-apst at 58ba186 (nine commits, r1-r7 of PR #1131) for the rebase onto the forced-write change; the earlier idle-time multiples (50x, 500x) and their measurements are in evidence `pr-1131`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. Where Identify Controller's APSTA says the controller supports them, the driver now sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2) at bring-up and again after every reset, which returns features to their defaults. It logs every power state and the table it set; a controller that refuses the table is reported and served from its operational state. The table is built by `nvme-apst`, a pure crate nested in the driver, from the drive's own power state descriptors (Figure 313), with no table of drives: - a target is a non-operational state whose stated entry plus exit latency, the most the first I/O after idle waits (§8.1.17), is within 100 ms; a state that reports either as 0h is never one; - each state goes to the deepest admitted state of the first tier that holds one deeper than itself, reporting no higher idle power: a round trip within 15 ms after 100 ms idle, else one within 100 ms after 2 s. osbench's `persist.write_4k_fsync_after_idle` times the same durable write as `persist.write_4k_fsync`, each after 10 s idle, on both systems, and Linux's `nvme` group reads the controller's APST table through the UAPI admin passthrough, in the form the ToyOS driver logs its own. The record `a-data-commit-flushes-the-drive-twice` this branch carried is gone: it described a commit path #1152 deleted, and the journal's forced write removed the second Flush it named. Squashed from nvme-apst at 58ba186 (nine commits, r1-r7 of PR #1131) for the rebase onto the forced-write change; the earlier idle-time multiples (50x, 500x) and their measurements are in evidence `pr-1131`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. Where Identify Controller's APSTA says the controller supports them, the driver now sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2) at bring-up and again after every reset, which returns features to their defaults. It logs every power state and the table it set; a controller that refuses the table is reported and served from its operational state. The table is built by `nvme-apst`, a pure crate nested in the driver, from the drive's own power state descriptors (Figure 313), with no table of drives: - a target is a non-operational state whose stated entry plus exit latency, the most the first I/O after idle waits (§8.1.17), is within 100 ms; a state that reports either as 0h is never one; - each state goes to the deepest admitted state of the first tier that holds one deeper than itself, reporting no higher idle power: a round trip within 15 ms after 100 ms idle, else one within 100 ms after 2 s. Squashed from nvme-apst at 58ba186 (r1-r7 of PR #1131) and rebased onto main; the earlier idle-time multiples (50x, 500x) and their measurements are in evidence `pr-1131`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
`osbench_disk` runs `files`, `nvme` and `persist` alone on the bench's NVMe, so a change to the disk's path or its power states is measured without the whole suite's boot. PR #1202's and PR #1131's A/B ran on it. Only a pass that names it runs it: the nightly `osbench` boot measures the same groups. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
72ce4d2 to
6526e1c
Compare
…rds hold what was measured 1. The row's comments called all three groups the disk's figures. Only `persist` writes the bench's NVMe; `files` is the memory filesystem's rows and `nvme` is read-only and unsupported on ToyOS. The comments and the README say so. No group is dropped, so the image is as it was. 2. The bound's comment said no boot had timed the groups apart from the suite. Twenty-four have. It now says only that the suite's bound is reused as a ceiling. 3. The rejected record omitted the one result that points the other way: on the T14 `fs.disk.seq_write.1048576` was 24% faster forced in every boot, and 13% slower on the AMD bench. It is stated, with why the ruling stands. "No faster at best" is scoped to the durable rows, the worst figure is 71%, the third arm is named with its revision and its APST, and the Linux column is labelled as three runs. 4. The T14 finding's control was wrong: one boot with neither idle nor APST left the slow mode by itself. The record counts it, names the third case, and makes its exit a count against that base rate. It is `assigned` to PR #1131's measurement, and the slow-write record points at it. 5. The storage track still called the forced write assigned work. It now points at the rejected record; the two-Flush cost stays. Comments and records only. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. Where Identify Controller's APSTA says the controller supports them, the driver now sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2) at bring-up and again after every reset, which returns features to their defaults. It logs every power state and the table it set; a controller that refuses the table is reported and served from its operational state. The table is built by `nvme-apst`, a pure crate nested in the driver, from the drive's own power state descriptors (Figure 313), with no table of drives: - a target is a non-operational state whose stated entry plus exit latency, the most the first I/O after idle waits (§8.1.17), is within 100 ms; a state that reports either as 0h is never one; - each state goes to the deepest admitted state of the first tier that holds one deeper than itself, reporting no higher idle power: a round trip within 15 ms after 100 ms idle, else one within 100 ms after 2 s. Squashed from nvme-apst at 58ba186 (r1-r7 of PR #1131) and rebased onto main; the earlier idle-time multiples (50x, 500x) and their measurements are in evidence `pr-1131`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. Where Identify Controller's APSTA says the controller supports them, the driver now sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2) at bring-up and again after every reset, which returns features to their defaults. It logs every power state and the table it set; a controller that refuses the table is reported and served from its operational state. The table is built by `nvme-apst`, a pure crate nested in the driver, from the drive's own power state descriptors (Figure 313), with no table of drives: - a target is a non-operational state whose stated entry plus exit latency, the most the first I/O after idle waits (§8.1.17), is within 100 ms; a state that reports either as 0h is never one; - each state goes to the deepest admitted state of the first tier that holds one deeper than itself, reporting no higher idle power: a round trip within 15 ms after 100 ms idle, else one within 100 ms after 2 s. Squashed from nvme-apst at 58ba186 (r1-r7 of PR #1131) and rebased onto main; the earlier idle-time multiples (50x, 500x) and their measurements are in evidence `pr-1131`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
`persist.write_4k_fsync_after_idle` times the same durable write as `persist.write_4k_fsync`, eight times, each after 10 s in which the program touches nothing: what a drive's idle power states cost the first I/O that wakes it, on both systems. The suite's and the disk row's bounds grow by its 80 s. On Linux the `nvme` group reads the controller's APST table through the UAPI admin passthrough (Get Features 0Ch, NVM Express Base 2.1 §5.1.25.1.6), in the form ToyOS's driver logs its own. This commit carries no driver change: an image of it idles the disk without APST, the base arm of the measurement that follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. Where Identify Controller's APSTA says the controller supports them, the driver now sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2) at bring-up and again after every reset, which returns features to their defaults. It logs every power state and the table it set; a controller that refuses the table is reported and served from its operational state. The table is built by `nvme-apst`, a pure crate nested in the driver, from the drive's own power state descriptors (Figure 313), with no table of drives: - a target is a non-operational state whose stated entry plus exit latency, the most the first I/O after idle waits (§8.1.17), is within 100 ms; a state that reports either as 0h is never one; - each state goes to the deepest admitted state of the first tier that holds one deeper than itself, reporting no higher idle power: a round trip within 15 ms after 100 ms idle, else one within 100 ms after 2 s. Squashed from nvme-apst at 58ba186 (r1-r7 of PR #1131) and rebased onto main; the earlier idle-time multiples (50x, 500x) and their measurements are in evidence `pr-1131`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Three boots of the driver's APST against three of the same image without it, on each bench, with Linux between rounds. - The first durable write after the drive wakes is 1.29 ms behind Linux's on the T14 and 0.63 ms on the AMD bench. That is the commit path's, not APST's, and is its own defect with an exit. - The T14's slow durable writes ended across 80 s of idle in six of six boots with APST and in none of three without it; one of eleven boots with neither left the mode by itself. The finding that asked the question is folded into the slow-write record, which now says what ends the mode and what is still unknown. - The APST track says what was built and where its two remainders are recorded. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
The plan is 32 entries, 792 bytes inline, which made `Power::Autonomous` hundreds of times the size of its other variants (clippy's large_enum_variant, found by linting the driver on the host). The plan is written to the controller before it is boxed, so the table set is unchanged; only where the logged copy lives moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #1131 at
|
…very answer reported - An NPSS above 31 names descriptors Identify Controller does not hold. From 64 the slice ran off the page and the driver panicked at bring-up, before it read APSTA, so a controller without APST was lost with it; from 32 to 63 the plan indexed past its 32 entries. `states` takes the whole page and refuses such an NPSS; the driver reports it and serves without APST. - A state's target was the one with the longest round trip within a tier, an order the specification does not give states. It numbers them so that none consumes more maximum power than the one before (Base 2.1 §8.1.17), and permits a later state to be quicker to leave; such a drive got a table that kept it out of its lowest-power state. The target is now the highest-numbered state after it within the first tier that holds one, which removes the floor. Both benches' drives list rising latencies, so their tables are unchanged, and a test of each pins it. - The admission bound repeated the last tier's; the tiers alone bound the round trip now. - Identify builds the plan once, into `Power`. `set_power` sends it and answers the status of a refusal, and bring-up and reset each report it: a refusal after a reset went unsaid. The plan is one entry per state, so nothing is boxed and no copy of the states is kept beside it. A table with no transition is sent with APSTE clear and logged as off. - `EXIT_BOUND_US` is `ROUND_TRIP_BOUND_US`: it bounds entry plus exit. - The driver's APST paragraph cites Base 2.1, whose section numbers they are, and the crate says the bound is on the target's stated round trip rather than on what the first I/O waits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- `diskserver-drives-nvme-apst` is met and deleted. Its exit: host tests of the table, its mutation a table admitting a state past the bound (the bound test fails under it, evidence `pr-1131` r12); the T14's block figures with no row regressed and the same table Linux sets on both benches (r10); the idle minute measured in r1 to r4, whose not falling is `the-t14s-idle-package-stays-in-pc2`'s; the specification's rules as the oracle. Its durable rule, that the specification bounds no latency and the bound is policy, is at the bound. - The pc2 record gains that the drive's rail is outside the package energy, so the drive's saving rests on its descriptors and on the table matching Linux's. - The after-wake record's T14 wake subtracted a slow-mode write from a fast-mode wake. Read within the fast mode it is about 13.1 ms, Linux's about 12.0; the AMD's 7.1 ms stands. - The slow-mode record's heading states its reading as one, not proved. - The manual's line says the bound is on a state's stated latencies, not on what the first request waits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Response to the review of
|
Follow-up review of #1131 at
|
The two tests over the benches' drives were named for Linux's table, which is evidence, not their oracle: they assert that every state goes to PS4 after 100 ms, and are named so. The bound test's note named the APST track, which is closed. The manual says the table is built from the power states the drive describes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Follow-up fixes at
Guest run 43058169740 ( 🤖 Generated with Claude Code |
|
Orchestrator: verified 5cdf3c9 against the follow-up review's two required fixes. |
…bound counts APST's On #1131: the reset also sets the APST table, a tenth admin command. The reset's count was written by hand beside the code that issued them, so nothing would have noticed it go stale. `make_io_queues` and `set_power` become `Controller::configure`, which bring-up and the reset both call. It steps through `STEPS`, a const list of the queue count, a completion and a submission queue for each of `MAX_IO_QUEUES`, and the APST table, and issues at most one admin command per step and none besides. `RESET_ADMIN_COMMANDS` is the list's length, so `ANSWERED_WITHIN` follows the code: 10 + 2 × 127.5 + 10 × 10 = 365 s. `toyos_blockring::SILENCE_BOUND_NS` is 365 s, no rounding up. Tests, on the host: `a_command_left_silent_is_answered_within_365_s` and `a_reset_steps_through_the_queues_then_the_power_table`, which holds the list's order. A step added to the list fails the build at the bound's assertion. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Head
5cdf3c9bcon main34cb4c918. Commits: osbench's after-idle row and Linux's APST read; the driver's APST; the records of what the measurement found; the plan boxed (superseded); the first review's code fixes; its record fixes and the track's close; the follow-up review's test names and comments.Problem
ToyOS's NVMe driver never set Autonomous Power State Transitions, so a drive stayed in its operational state whenever it was idle. That was the track
issues/diskserver-drives-nvme-apst.md, which this PR closes.Behavior
Where Identify Controller's APSTA says the controller supports APST, the driver sets Feature 0Ch (NVM Express Base 2.1 §5.1.25.1.6, §8.1.17.2), at bring-up and after every reset. It logs every power state and the table. A controller that refuses the table is reported, at bring-up and after a reset, and served from its operational state.
Identify Controller is validated once. An NPSS above 31 names more states than the page holds descriptors for: the driver reports it and serves without APST.
The table is built by
system/nvme/apstfrom the drive's own descriptors, once, with no table of drives. A target is a non-operational state that states both latencies. Each state goes to the highest-numbered target after it within the first tier that holds one, reporting no higher idle power:ROUND_TRIP_BOUND_US), after 2 s.States are ranked by number because the specification numbers them so that none consumes more maximum power than the one before (§8.1.17); latencies carry no order. A table with no transition is sent with APSTE clear.
The tiers are kept, by the orchestrator's decision after the A/B: they give the same table Linux sets on both benches' drives,
0,1,2,3->4 after 100 ms.osbench (first commit, no driver change):
persist.write_4k_fsync_after_idletimes the first durable write after 10 s idle on both systems, and Linux'snvmegroup reads the controller's APST table through the UAPI admin passthrough.The manual's power section gains the decision.
Measured: it meets the landing rule on both benches
Three boots of the driver's APST (
047e0a708) against three of the same image without it (349ccb26b), interleaved, on each bench, with Linux'spersistbetween rounds and itsnvmeread last. Every step ran once. Rules written before staging and amended before any boot. Evidence: https://github.com/ToyOSOrg/evidence/blob/4ee8f9357170c27c4faa80e2d0be38d2f139d387/r10/README.mdfs.disk.seekis 1% worse and resolved,write_4k_fsync5% worse and not resolved; six rows better and resolvedBoth systems set
0,1,2,3->4 after 100 mson both drives.The review's fixes leave both benches' tables as measured. Both drives report NPSS 4, list their latencies rising with state number and never reset during the runs. A host test over each drive's logged descriptors pins
0,1,2,3->4 after 100 msunder the new ranking.Reported, not gated: the first durable write after idle (median of p50s):
issues/the-first-durable-write-after-the-drive-wakes-is-a-millisecond-behind-linuxs.md. The commit's second Flush is its first suspect; that path has not been split again since Consolidate storage around native bcachefs and userland filesystems #1152.Consistent with the data, not proved: APST ends the T14 drive's slow write mode. The T14's durable writes run about six times slower in some boots, on both systems. Of the boots that began
persistslow:append_4k_fsync0.98 against 6.75 ms,create_fsync_unlink1.16 against 7.44 ms,write_4k_fsync_beside_1m1.28 against 7.70 ms,seq_write_fsync259 against 191 MB/s.issues/toyos-durable-writes-on-the-t14s-nvme-run-six-times-slower-in-some-boots.md; the finding that asked the question (osbench's disk groups as a metal row, and the forced journal write recorded as measured and declined #1215) is folded into it and removed.The track's close. Its exit is met: host tests of the table; its mutation, a table admitting a state past the bound, fails the bound test (r12); the T14's block figures with no row regressed and the table Linux sets (r10); the idle minute, measured in r1 to r4, whose not falling is
issues/the-t14s-idle-package-stays-in-pc2.md's; the specification's rules as the oracle. The drive's own rail is outside the package energy osbench reads, so the drive's saving rests on its descriptors (PS4 at most 5 mW) and on the table matching Linux's; the pc2 record says so.Revisions. The measured images are
349ccb26band047e0a708, on mainad5db5a65. Their code is669a096f6and332cf33c5here, unchanged by the rebase onto34cb4c918(the non-comment lines of each commit's diff are identical).902ca4e30boxed the plan;56318e297replaces it and fixes what the review found, and changes no table either bench gets.Checks
Targeted at what the PR touches, under the owner's testing policy; the merge queue runs the full host checks and the image. No metal run is repeated: the fixes change no table either bench gets, nor any path either took. The guest row is below.
Logs: r12 https://github.com/ToyOSOrg/evidence/blob/e267c4c96d03ffbe9593fe2384fc3929f39a7fc6/r12/README.md (at
a84c64a88) and r13 https://github.com/ToyOSOrg/evidence/blob/ef7ae674c238167d0a4298ab3790c7e98b624de2/r13/README.md (at5cdf3c9bc).a84c64a88cargo test -p nvme-apst5cdf3c9bc, exit 0, 12 passedcargo test --manifest-path system/nvme/Cargo.toml(the driver, on the host)cargo clippy -p nvme-apst --all-targets, with the adopted lints and warnings denied5cdf3c9bc, exit 0Each mutation was applied, tested and reverted in the same run, and the source's hash was checked afterwards.
5cdf3c9bcchanges only test names, comments and the manual, so the driver's rows and the mutations ata84c64a88still apply. No gate lints the driver: the merge gate's clippy leaves out every userland program (issues/userland-programs-are-never-linted.md).Earlier, and why each still applies:
5418cb1a5(r11):cargo clippy -p osbenchon both Linux musl targets exit 0, andcargo test --test toyos-checksexit 0 (44 passed). This round changes neither osbench nor the harness.nvme_disk_boots, PASS at047e0a708(run 42983382300): with the driver's new bring-up step, QEMU's controller still boots to ready. The bring-up path has changed since: Identify builds the plan, a table with no transition is sent with APSTE clear, andopenandresetreturn the controller's answer. So the row is dispatched again ata84c64a88, run 43058169740. It passed:PASS nvme_disk_boots,test result: ok. 1 passed, 1 total.5cdf3c9bcchanges no code it builds.cargo run -- --build-onlywas last run at047e0a708, exit 0. This head's image is built by the merge queue.Evidence
pr-1131of the evidence repository, r6 at https://github.com/ToyOSOrg/evidence/blob/c2f9be162f22bb54e90a1d14b5091cf6ab0ad785/r6/README.md, r7 at https://github.com/ToyOSOrg/evidence/blob/020864e5c9d0d3c1d7bac2383d84f26d2651f17c/r7/README.mdRisks
issues/the-t14s-idle-package-stays-in-pc2.md); that record owns it.🤖 Generated with Claude Code