From 1c147816c12d1ca85fd5092d417d503eb86c6476 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Fri, 23 Oct 2026 22:25:03 -0400 Subject: vgsp-gr r585: demand the fill's dropped pages through the pin channel (the staging-pin coverage class) The r584 boot's matmul draw: GR-DEC push=0x20043be64 n_data=2 dropped=18 partial=1 stalled=1 -> the r543 argument defer expired -> r564 degenerate refusal -> SW completion -> MATMUL bad=65536 csum=0. The dropped pages (the client's staging buffers 0x71b662c00000/c40000/c80000, 0x7dd0cac00000, kind=a) had NO injected mapping: the host pin stream's demand loop only parses "stalled VA #N: 0x..." lines, and the GRFILL-DROP line format is invisible to it - so the fill's retries never saw pins and the launch was SW-completed without running. r585: svc_log_stalled_va() for each dropped page (up to the 4 detailed per episode; the helper dedups per boot and the episode marker bounds the rate). The host demand loop (<=3 s) then pushes the VA to the guest scanner, whose pin lands inside the launch's bounded defer window on the retry - the demand path that already heals every other unresolved-VA class, now connected to the fill drops. --- kernel/gsp_sema_service.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 6e0d88b..24cb034 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -20695,10 +20695,29 @@ static void svc_gr_data_fill(struct nv_vgpu_device *vgpu, u32 dl; svc_gr_drop_log_va = svc_fwd_req.gr_push_va; - for (dl = 0; dl < 4 && dl < dropped_pages; dl++) + for (dl = 0; dl < 4 && dl < dropped_pages; dl++) { + /* + * r585: DEMAND the dropped pages through the + * pin channel. The host pin stream parses the + * "stalled VA #N: 0x..." lines (svc_log_stalled_va) + * and pushes each VA to the guest scanner within + * ~3 s, whose pin then lands inside the launch's + * bounded argument-defer window - the r584 matmul + * draw dropped 18 staging pages that were NEVER + * demanded (the GRFILL-DROP line format is + * invisible to the host's demand regex), the r543 + * defer window expired, and the r564 degenerate + * refusal SW-completed a launch that wrote + * nothing (MATMUL bad=65536 csum=0). One demand + * per page per boot (svc_log_stalled_va dedups); + * one episode per launch push VA (the marker + * above). + */ + svc_log_stalled_va(drop_va[dl]); pr_info("vgsp-gr: GRFILL-DROP va=0x%llx kind=%c idx=%u\n", drop_va[dl], drop_kind[dl], drop_idx[dl]); + } } } if (svc_gr_data_stalled) -- cgit v1.2.3