summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 15:54:52 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 15:54:52 -0400
commitd8ce3187036c47bdea98c20111ae3db0dd853465 (patch)
treeb91d9390a6300c7c239b8b2e643898e1934327bd
parent484a785d96e8319e2738f4fb0f81ba914a140ef6 (diff)
downloadopen-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.c4
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++) {