Commit Graph
75 Commits
Author SHA1 Message Date
flamingcow ab60cc1cfc Cap cpu idle exit latency for the life of the run, deep enough to keep C1 and shallow enough to block the rest 2026-08-04 22:50:22 -07:00
flamingcow 49eaa8a8a8 Take the rate epoch from the slowest stream's frontier, since reading a bucket claims every stream has delivered through it 2026-08-04 22:38:10 -07:00
flamingcow 7b2601a02e Fail loudly on a touch read, stop the workers before their sockets close, and file down the small edges 2026-08-04 22:26:07 -07:00
flamingcow 12cef6a89b Fold the shutdown flags into one, take the smallest frame to the wire minimum, drop the speed column 2026-08-04 22:12:07 -07:00
flamingcow 19b0f1d2ea Refuse a filter location something else holds, and the driver's word on how many it wrote 2026-08-04 22:12:03 -07:00
flamingcow f5d05d1fc5 Fail loudly on a drm read instead of leaving the panel frozen on its last frame 2026-08-04 22:11:58 -07:00
flamingcow dd94f4cab5 Set the socket buffers through the force options alone instead of falling back to the capped ones 2026-08-04 22:01:10 -07:00
flamingcow 4c7062d600 Take the line rate as a constant so nothing has to be plugged in, and drop the config box 2026-08-04 21:58:52 -07:00
flamingcow 01d673dc83 Check the header version on arrival and say what the error window actually spans 2026-08-04 21:29:03 -07:00
flamingcow 49de171ad0 Commit the receive counters once per batch instead of once per frame 2026-08-04 21:25:04 -07:00
flamingcow 21788fdd4f Judge a frame against the stream its socket receives rather than the one its header claims 2026-08-04 21:19:08 -07:00
flamingcow 51467231ee Fill what a rounded rectangle contains outright as spans instead of pixel by pixel 2026-08-04 21:09:12 -07:00
flamingcow ce44fe9866 Walk the control buffer by hand instead of allocating a message list per frame 2026-08-04 20:48:17 -07:00
flamingcow 1d54a1a1f6 Checksum the header and refuse sequence numbers the sender never sent 2026-08-04 20:41:16 -07:00
flamingcow 703039587b Bucket received frames by their mac receive stamp and read one bucket back 2026-08-04 20:04:30 -07:00
flamingcow 8db5c29882 Cover the loss window, rate window, error taxonomy and formatters with tests 2026-08-04 15:46:12 -07:00
flamingcow 63196eb691 Mirror the panel in the console table as one summed row in two sections 2026-08-04 14:02:53 -07:00
flamingcow fbfcabda7e Draw every panel figure from the latest sample instead of holding the totals 2026-08-04 13:49:21 -07:00
flamingcow 4e60757937 Rate from the newest bucket, stamped when the counters are actually read 2026-08-04 13:45:16 -07:00
flamingcow 2035d42734 Fold the leftover formatters into the SI ones and stop reallocating the draw scratch 2026-08-04 13:37:19 -07:00
flamingcow f5a6420cfa Drop the fatal flag now that every failed check is fatal 2026-08-04 13:33:08 -07:00
flamingcow 39c27166dc Hardcode the settled sizes, streams and batch instead of carrying flags for them 2026-08-04 13:31:14 -07:00
flamingcow 05e1958710 Cut the drm package comments back to what is not evident from the code 2026-08-04 13:23:41 -07:00
flamingcow 4fd3abaf25 Move the shared drm ioctl abi into internal/drm 2026-08-04 13:21:50 -07:00
flamingcow 66bfb88dd7 Make every failed check and unreadable counter fatal instead of degrading 2026-08-04 13:03:07 -07:00
flamingcow fb6a0d2c1b Push the new origin into the sample ring so a reset cannot underflow the totals 2026-08-04 12:59:50 -07:00
flamingcow a285b8999c Drop the counter padding that was never buying a cache line 2026-08-04 12:53:53 -07:00
flamingcow 06592cbc81 Stop counting a partly filled send vector as a failure 2026-08-04 12:45:12 -07:00
flamingcow 1f9b5ea62e Look the expected checksum up instead of carrying it in the frame 2026-08-04 12:45:04 -07:00
flamingcow 03b7ff4954 Drop the write-only direction fields and the unused pattern names 2026-08-04 12:26:10 -07:00
flamingcow 21b20d0071 Scale integer counts on the panel like every other figure 2026-08-04 11:27:35 -07:00
flamingcow 49a1a2f829 Read rx errors from the driver stats array and add the pcs counters 2026-08-04 11:27:30 -07:00
flamingcow 5eea6856fb Cut the comments back to the genuinely subtle ones 2026-08-01 16:14:12 -07:00
flamingcow 726c4c2445 Rework the panel onto SI figures, labelled chips and one spacing scale 2026-08-01 16:07:44 -07:00
flamingcow de2ff13eb6 Collapse errors into lost, corrupt, link and internal 2026-07-31 17:10:25 -07:00
flamingcow 3c8637f931 Show recent errors as labelled chips and rebuild the reset button to match 2026-07-31 17:05:31 -07:00
flamingcow f512391ee4 Capture the panel by reading the displayed drm buffer instead of fbdev 2026-07-31 16:46:11 -07:00
flamingcow 1c5bda37bf Drive the panel through drm and page flip between four scanout buffers 2026-07-31 16:46:11 -07:00
flamingcow 57d7c91df1 Sample the rate buckets on their own clock instead of the display refresh 2026-07-31 16:15:16 -07:00
flamingcow 5d2dbffb4a Add a harness that runs cabletest on a timer and captures the panel to png 2026-07-31 16:15:16 -07:00
flamingcow c94b7ae33d Show median bucket rates, slide the error window, and poll sysfs off the draw loop 2026-07-31 15:45:03 -07:00
flamingcow cf204f5a23 Add mkimage to build and install the image from the latest signed kernel tag 2026-07-26 17:07:09 -07:00
flamingcow ab0a8c8759 Take ns/m to 4.85, measured against a 6m cable 2026-07-26 15:51:52 -07:00
flamingcow 5676b2b581 Detect mounts by mount root, wait for the touchscreen, and default to eth0/eth1 2026-07-26 15:51:34 -07:00
flamingcow 832a2b42d6 Mount the filesystems we need so this can run as PID 1 2026-07-26 10:54:19 -07:00
flamingcow 5e2b36bdaa Clear staticcheck, gopls and go.mod warnings 2026-07-26 10:33:38 -07:00
flamingcow 102d53fb9b Turn the display portrait and split it into live and since-reset panels 2026-07-26 10:27:41 -07:00
flamingcow 4d102f377e Take the cable zero from the shortest delay seen rather than a flag 2026-07-26 09:43:03 -07:00
flamingcow e77574712d Cycle every payload pattern per packet and always run both directions 2026-07-25 23:03:31 -07:00
flamingcow 0f16edfe61 Count link and syscall failures instead of printing them 2026-07-25 22:54:04 -07:00
flamingcow 1b322bb32b Measure cable length from hardware transmit and receive timestamps 2026-07-25 22:38:52 -07:00
flamingcow 09411aebdf Reset everything from a held on-screen button or space 2026-07-25 21:41:21 -07:00
flamingcow b2441ba64a Redraw at 60Hz with adaptive rate smoothing, console output at 1Hz 2026-07-25 21:30:37 -07:00
flamingcow 12958ced56 Take the console into graphics mode while drawing 2026-07-25 21:30:37 -07:00
flamingcow 892e855207 Group the display into instant and cumulative sections on a shared grid 2026-07-25 19:48:15 -07:00
flamingcow 7a9567da55 Clear the framebuffer on exit 2026-07-25 19:42:45 -07:00
flamingcow 419bdc4bb7 Render the live status to the framebuffer in Atkinson Hyperlegible Mono 2026-07-25 19:41:53 -07:00
flamingcow 16416bc1b0 Draw the counter reset as a labelled rule across the table 2026-07-25 19:31:03 -07:00
flamingcow 269199366d Reset cumulative error counts on space 2026-07-25 19:29:00 -07:00
flamingcow abb8b81919 Remove CPU pinning flags that measured slower than the scheduler 2026-07-25 19:24:10 -07:00
flamingcow 32c49ccc4b Widen rate thresholds so interval jitter is not flagged 2026-07-25 19:17:25 -07:00
flamingcow ed0f1d11e6 Default to seven steered streams across the full frame size range 2026-07-25 19:15:20 -07:00
flamingcow 7e77d22f36 Give each stream its own ethertype steered to its own rx queue 2026-07-25 19:08:11 -07:00
flamingcow 0af94219a7 Show cumulative error counts in the streaming rows 2026-07-25 18:45:47 -07:00
flamingcow e0781b3334 Default to worker counts and frame sizes that measure the cable, not the host 2026-07-25 18:40:37 -07:00
flamingcow 7c09c34564 Stream forever with eviction-based per-stream loss detection 2026-07-25 18:33:36 -07:00
flamingcow 2516d908b9 Remove unmanaged check; nothing else will own these interfaces 2026-07-25 18:23:01 -07:00
flamingcow 36711522a2 Drop binary gitignore now that go run is the only entry point 2026-07-25 18:21:53 -07:00
flamingcow 3ba68952bb Always color output and fold settled values into constants 2026-07-25 18:20:34 -07:00
flamingcow 29c6ce0b56 Drop drift detection; host tuning is one-shot system startup 2026-07-25 18:18:00 -07:00
flamingcow 773724368e Always correct host settings instead of gating fixes behind flags 2026-07-25 18:16:34 -07:00
flamingcow 27f89d9916 Render output as colored tables with pass/fail verdict 2026-07-25 18:13:58 -07:00
flamingcow 7f671a262e Check and correct host tuning at startup and on drift 2026-07-25 18:07:25 -07:00
flamingcow befd732406 Add full-duplex raw-Ethernet 10G cable stress tester 2026-07-25 17:58:54 -07:00
flamingcow 161a560d7f Initial commit 2026-07-25 17:25:37 -07:00