Repository navigation
issues: the scoreboard's unrecorded gaps, and the T14's durable writes across five boots - #1105
Conversation
Review of #1105 at b006c29 (base e4bdb0a)The PR changes only Markdown: +267/−33 across 10 Architectural assessmentFiling one record per uncovered gap, each with an owner and an exit, is the right shape, and almost every table cell matches the scoreboard. Three problems recur across records:
Blockers
For the orchestrator (PR description and evidence)
Suggestions
Verified as stated
SEND BACK |
…s across five boots The 2026-10-28 scoreboard compares ToyOS at 069cbbe against each bench's Linux as installed: 4 boots against 5 runs, interleaved (evidence branch scoreboard-2026-10-28). Each row ToyOS loses with no owning record now has one, with its figures, an owner and an exit: - a small message's round trip over a native connection (ipc.reqrep.8, 2.04x on the T14); - the futex ping-pong (2.01x and 1.37x on the T14); - tmpfs metadata calls (fs.mem open_close, stat, rename, mkdir_rmdir, 4.1-6.5x on the T14); - process and thread spawn, and the all-CPU build (up to 3.7x on the T14, and 2.3x for j16 on the AMD); - small memcpy on the AMD (64 B at 0.61 of Linux's); - no loopback, so osbench net measures nothing; - std's yield_now, which yields nothing. The T14 durable-write record takes all five boots: 2 of 5 ran persist six times slower throughout and a third turned slow partway, with nothing in the logs to tell them apart. It gets a slug that says so, which #1097 had on its branch after it merged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tmpfs record's exit is the migrated /tmp of storage track step 9 and it carries all eight fs.mem rows. The ipc, spawn and two-thread ping-pong records read the AMD's Linux per run, its first three runs on the TSC and its last two on the HPET, rather than hedging on the clocksource. The futex record becomes the two-thread ping-pong record and takes the pipe rows. The durable-write record gives each Linux set's range and exits on every persist row. The loopback record states the route refusal, the refused listen and the UDP refusals from the code, and counts the connect answered ERR_NOT_CONNECTED as part of the defect. The memcpy record cites the ERMS and memset records and is renamed for what its title claims; the memset record no longer calls memcpy unmeasured. The shootdown and hot-paths records carry the munmap and bandwidth rows they own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… rows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review r1 response (head
Suggestions taken: the scoreboard line is wrapped, "band" replaces "priority", the pair-wake citations are in, and so are the memcpy T14 losses. The |
Review r2 of #1105 at 2cb987b (base f407918)Focused round. For each r1 blocker and taken suggestion, I checked the changed text against r1 blockers
The taken suggestions are in: the boilerplate is wrapped, "band" replaces "priority", the pair-wake records are cited, and the T14 memcpy losses are named. Nothing cites the old slugs ( New blockersA.
B.
Suggestions
PR body (orchestrator)
SEND BACK: two one-sentence fixes (A and B). |
The spawn record scopes its conclusion to the std Command pair; the memset record says memcpy may share the start-up. The ping-pong record states the T14 Linux clocksource instead of inferring it from the AMD, the loopback record cites the route test a 127/8 connect reaches, and the memcpy record notes the sweep's huge-page difference. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Orchestrator: r2's blockers A and B and the four suggestions checked against 2cb987b..f2e72a5, issue text only. The spawn sentence is limited to the Command pair, memset reads "may share it", and the loopback test is the route's s_ip_rte_006. The body's ipc.reqrep.8 cause is now run overlap. Landing. |
Issues only, no code. The 2026-10-28 scoreboard compared ToyOS at
069cbbeb8against each bench's Linux as installed: 4 boots against 5 runs, interleaved, every ToyOS readback judged EXIT=0 (evidence, branchscoreboard-2026-10-28). It found rows ToyOS loses with no owning record. This PR records the ones listed below, each with the scoreboard's figures, an owner and an exit. Every table is generated from the comparison files.a-small-message-round-trip-over-a-native-connection-costs-twice-linuxs-on-the-t14ipc.reqrep.82.04x andreqrep_handle.81.21x on the T14a-two-thread-ping-pong-costs-toyos-up-to-twice-linuxs-on-the-t14pingpong.futex.same_cpu2.01x,cross_core1.37x;pingpong.pipe.cross_core1.83x,same_cpu1.37x on the T14kernel/src/pipe.rsa-tmpfs-metadata-call-costs-toyos-up-to-six-times-linuxsfs.memrows, 1.7x–6.5x on the T14;open_close2.1x andrename1.4x on the AMD (the listing isa-listing-still-scans-the-whole-mount's)/tmpthrough storage track step 9; the exit is the migrated/tmpspawning-a-process-costs-toyos-up-to-four-times-linuxs-on-the-t14a-small-memcpy-on-the-amd-bench-runs-at-as-little-as-six-tenths-of-linuxsmem.memcpy.64at 0.61 of Linux's,2560.90,2621440.70 on the AMD; 16 KiB and 64 MiB on the T14sdk/libc)toyos-has-no-loopback-so-osbench-net-measures-nothingnet.*rows unsupported on both benches, and a 127/8 connect misreported asERR_NOT_CONNECTEDstd-yield-now-on-toyos-yields-nothingtime.yieldunsupported: no yield syscallExisting records take rows they already own, with the scoreboard's figures:
a-tlb-shootdown-reaches-only-the-cpus-that-ran-the-space, whose exit already names the T14's munmap figures:mem.munmap_part.4k1.22x andmem.munmap_touched_remote.4k1.32x.user-memory-hot-paths-are-slower-than-2-mib-pages:mem.bw.copy, where Linux gave 131,072 KiB of huge pages and ToyOS none.a-short-memset-on-x86-64-costs-a-rep-stosb-start-upnow points at the memcpy measurement instead of calling it unmeasured.Still without a record here:
persist.seq_read_cachedandfs.disk.seq_write.*. The disk agent already working on the clean fsync, sequential write and cache is on them.The T14 durable-write record,
toyos-durable-writes-on-the-t14s-nvme-run-six-times-slower-in-some-boots, replaces…-took-1-to-6-ms-across-two-boots. It covers all five boots: 2 of 5 ranpersistsix times slower throughout, and a third turned slow partway. Nothing in the logs tells them apart. Linux read 0.83–1.25 ms over the scoreboard's runs, and the exit is every durable persist row. #1097 carried this rewrite on its branch after it merged, so it lands here.The AMD's Linux chose the TSC in runs 1–3 and the HPET in runs 4–5, at 1.2 µs a timestamp. Each record reads its rows per run rather than hedging on the clocksource.
ipc.reqrep.8on the AMD stays unresolved because ToyOS's and Linux's runs overlap (p = 0.063). The scoreboard text claimed every median was a TSC run's and gave 0.81–1.20 ms for Linux's durable writes. Both are corrected in an append-only evidence commit,2d212f56d.Checks:
cargo run -- --ci host, exit 0, 105 steps green, at2cb987b3a(rebased ontof40791833); the later review rounds changed only record text. Markdown only. Everyissues/…citation in the changed records resolves on the rebased tree.🤖 Generated with Claude Code