diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-18 08:07:37 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-18 08:07:49 -0400 |
| commit | 9500c994fde39ae4661a60d24d3fd31553d32af4 (patch) | |
| tree | fac7f699744bcb10cb954463e1e228a3092934d4 /kernel/main.c | |
| parent | 03d1ddbcbba333ed8bcc834ee9e6623e24f813e1 (diff) | |
| download | open-iov-9500c994fde39ae4661a60d24d3fd31553d32af4.tar.gz open-iov-9500c994fde39ae4661a60d24d3fd31553d32af4.zip | |
vgsp: copy completeness hardening + COPYAUDIT/COPY-TRUNC instrumentation
Map every guest-data copy path and its caps (CE soft copy/fill/inline,
GR fill span, late/gap span, bounce copy-in/out, forwarded CE copy,
launch-page pools) and close the two silent partial-data holes:
- late/gap span cap (gsp_phys_booter.c): a word cut at the 16-page cap
was still rewritten to the partial run; probe one page past the cut
and log COPY-TRUNC when it is resolvable (r218 shape: 4 words x 16
pages = all four cut at the cap).
- GR fill span walk (gsp_sema_service.c): a mid-span resolution miss
after >=1 authored page now logs COPY-TRUNC (was GRFILL-DROP only,
launch proceeded with fill_hold=0).
Instrumentation (all additive, no new locks/waits, readback uses the
same accessor the write just used):
- COPYAUDIT path=... va/len/done for every >=32 KB copy (CE soft copy,
fill, GRCE inline, GR bounce/gap copy-in and copy-out).
- COPY-MISMATCH 16-byte start/end destination readback vs the written
bytes right after the copy (CE first/last chunk; fill and inline first
16 B; GR staging first+last 16 B of every page).
- COPY-TRUNC on every partial copy: CE loop returns, fill/grce chunk
failures, short GR staging/copy-out counts, reloc-fix-span,
gr-fill-span; want>done is rate-limited but never silent.
make kernel green; only the pre-existing %x warning at
gsp_phys_booter.c:14088.
Diffstat (limited to 'kernel/main.c')
0 files changed, 0 insertions, 0 deletions
