From d8ce3187036c47bdea98c20111ae3db0dd853465 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 7 Oct 2026 15:54:52 -0400 Subject: 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. --- kernel/gsp_sema_service.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'kernel') 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++) { -- cgit v1.2.3