diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-19 09:57:48 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-19 10:21:02 -0400 |
| commit | fc203ded15863dc343442b7bb5fd0c796c5af503 (patch) | |
| tree | d2a1f91908ab5e14db5cf2241be3d6e0e07e84c9 /tools/rmtool/include | |
| parent | cdfa86724a9cf6648f1e3b602f435b69976fb6c0 (diff) | |
| download | open-iov-fc203ded15863dc343442b7bb5fd0c796c5af503.tar.gz open-iov-fc203ded15863dc343442b7bb5fd0c796c5af503.zip | |
vgsp: fail4 r242-r248 - GRCE LOAD_INLINE_DATA cursor advance + H2D decode instruments
The probe/mallocecho H2D (cudaMemcpy H2D of a 64 KB device buffer)
arrives as LOAD_INLINE_DATA method runs (op=3, subch=1, addr 0x1b4)
carrying the payload inline in the push, split across several runs
(and, depending on pool state, across several pushes of one sequence).
The inline-write handler wrote every run at st.offset_out without
advancing, so a multi-run upload kept only the last run's words and
the readback page held deterministic junk (RAWA 16382 16383 8193...).
Fix: a LOAD_INLINE_DATA run advances the destination cursor by the
bytes it wrote (hardware FIFO semantics); consecutive runs of one
upload now tile from the first destination.
Verified (fresh boot, standard params): mallocecho d-afterH2D head
0 1 2 3 4 5 6 7 (was junk); ctaid_probe RAWA first8 0 1 2 3 4 5 6 7
(was 16382 16383 8193 8194...). Residual: the upload spans multiple
runs/pushes and only the first 4095-word run lands today (bad=12289,
tail zeros) - the remaining runs are still lost to the decoder's
run-boundary handling (see sema-next-hdr captures).
Instruments added (all gsp_sema_dbg-gated, bounded, session-reset):
sema-pushall (de-windowed push decode trace with page_pa),
sema-opadd, sema-copyent, sema-dmatrace (denied transfers),
sema-bigrun (count>=1024 runs on len>=8192 pushes with cursor state),
sema-lid-hdr, sema-skiprun, sema-mystery, sema-next-hdr (header after
each big LID run). LDA/xfer-raw/stream dumps de-gated from
ch->h_object!=0 so unidentified channels are visible.
Diffstat (limited to 'tools/rmtool/include')
0 files changed, 0 insertions, 0 deletions
