diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-24 04:49:53 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-24 04:49:53 -0400 |
| commit | 0c73ae13061fcdcbd2fefba167dc2f797ec6e2d9 (patch) | |
| tree | d72b0ea6039a4388a2fa981dcc132bfb537ce22c /BIGPATH-REPORT.md | |
| parent | 3765729cdaf6ad340cb11d1c7a971ded44227267 (diff) | |
| download | open-iov-0c73ae13061fcdcbd2fefba167dc2f797ec6e2d9.tar.gz open-iov-0c73ae13061fcdcbd2fefba167dc2f797ec6e2d9.zip | |
vgsp-gr r605: walk the eng==0 class newest-registered first - the stream-order fix completed (the write-pointer drain, by ordering)
The r507o stream-order fix (walk CE channels before GR ones) assumed the
client's H2D copies ride CE channels. r595 established they also ride the
compute-class channel h=0x5c000059 (eng=0), and r604 gave the decision-time
capture: at the vadd's second decision on a fresh boot,
'peek-backlog h=0x5c000059 eng=0 put=95 last=94' - the b-copy entry was
already written and PUBLISHED (GP_PUT ahead of the pump) while the launch
decision ran, invisible to every guard (the r590 watermark skips
engine_type==0; the r541/r568 gates only see DECODED copies). The pump's
stable partition walked the launch channel (registered early, 0x5c000019)
before the copy channel (registered later, 0x5c000059), so the copy was
consumed 8 ms AFTER the decision and ~320 ms before the launch's copy-in;
the run was green only because the partial-argument defer had stretched
the window. Pins landing one pass earlier would have forwarded against
the pre-copy page (c = a + 0, the r568 red draw).
Fix the order within the class: newest-registered first (descending
h_object) walks the driver's later-registered copy / push-library channels
before its compute channels, so every launch decision sees the copy ring
consumed to its live write pointer (GP_PUT) - the write-pointer drain, by
ordering. No deferral, no cap interaction, no speculative execution: the
pump still consumes each entry exactly once through its normal per-slot
identity bookkeeping (slot_ops_ident/done/complete/hash), so no identity
mirroring is needed. A client whose compute channel registers last keeps
the historical order (no worse).
Diffstat (limited to 'BIGPATH-REPORT.md')
0 files changed, 0 insertions, 0 deletions
