diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 09:11:55 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-23 09:11:55 -0400 |
| commit | 51e50d937800db01bd95010ad54ef2c4ea140b75 (patch) | |
| tree | 354f39a3c024ab6eadfaf12c33b6ff0259db5762 /tools/cuda-ab/run/memset_probe | |
| parent | 6c845235b806b942d6760e7432bc3e318b65609c (diff) | |
| download | open-iov-51e50d937800db01bd95010ad54ef2c4ea140b75.tar.gz open-iov-51e50d937800db01bd95010ad54ef2c4ea140b75.zip | |
vgsp-sema: prefer the client's page tables over a disagreeing pool pin (moved-but-readable pool)
The pool resolver trusted an injected pin after a read-back proof. That
proof does not catch a pool page that MOVED: the old page is still
readable, so the release write lands on the old page while the client
polls the new one. Observed: 'pending release starved va=0x12100000x
tries=64' for ~45 s with the stale pin (pa=0x120b30000) readable, until
the fresh pin (pa=0x130e9d000) arrived; the client's tracker never woke
and its init hung (multikernel battery timeout, copies stuck rc=-2).
The client's own page tables are the GPU/UVM ground truth for where the
tracker reads, so when a structural walk resolves a different page than
the pin (and it is not a degenerate identity), the walk wins - both
sources are read-back proven at the exact offset.
Diffstat (limited to 'tools/cuda-ab/run/memset_probe')
0 files changed, 0 insertions, 0 deletions
