diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-07 15:54:52 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-07 15:54:52 -0400 |
| commit | d8ce3187036c47bdea98c20111ae3db0dd853465 (patch) | |
| tree | b91d9390a6300c7c239b8b2e643898e1934327bd | |
| parent | 484a785d96e8319e2738f4fb0f81ba914a140ef6 (diff) | |
| download | open-iov-d8ce3187036c47bdea98c20111ae3db0dd853465.tar.gz open-iov-d8ce3187036c47bdea98c20111ae3db0dd853465.zip | |
vgsp: m118 - data fill candidates at page granularity (runs start at the pointer page)
m110 collected candidate windows at 2 MB granularity, so the 64-page runs
started at the window base and never covered the pointer pages themselves -
the bank/param pointers matched no record and were never rewritten (m117:
only 2 relocations, trap unchanged). Collect candidate pages instead.
| -rw-r--r-- | kernel/gsp_sema_service.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 24b3adf..830b1d7 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -9606,7 +9606,7 @@ static void svc_gr_data_fill(struct nv_vgpu_device *vgpu) if (v < 0x10000000ULL || v >= (1ULL << 47) || (v & 3)) continue; - wv = v & ~0x1fffffULL; + wv = v & ~(u64)(SEMA_PAGE_SIZE - 1); for (w = 0; w < n_cand; w++) if (wins[w] == wv) break; @@ -9618,7 +9618,7 @@ static void svc_gr_data_fill(struct nv_vgpu_device *vgpu) * into the engine-walkable main-PT window (0x110000 onward, fresh * PTE lines; the commit-time snapshot only preserves that window). */ for (w = 0; w < n_cand; w++) { - u64 base = wins[w] & ~0x1fffffULL; + u64 base = wins[w]; u32 p; for (p = 0; p < SVC_GR_DATA_PAGES_PER_PTR; p++) { |
