From d9c2545fac3c37c57e56b892ed3d0e054d8f6816 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 7 Oct 2026 15:33:31 -0400 Subject: vgsp: m113 - re-register the VAS page directory after planting data (re-commit probe) All late engine-tree writes are invisible to the SM walker (only the commit-time snapshot resolves); the mail injection at a main-window fresh slot also fails (m112). Probe whether UNSET+SET_PAGE_DIRECTORY on the ladder VAS after planting forces the server walker to re-snapshot the tree; gated by gr_recommit. --- kernel/gsp_phys_gpu.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'kernel/gsp_phys_gpu.c') diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c index e92e5f1..c5419a5 100644 --- a/kernel/gsp_phys_gpu.c +++ b/kernel/gsp_phys_gpu.c @@ -1049,6 +1049,24 @@ int gsp_phys_rmcall_gr_data_prewin_value(void) } EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_data_prewin_value); +/* + * m113: after planting the launch's data mappings, re-register the VAS page + * directory (UNSET+SET) to force the server walker to re-snapshot the tree; + * all evidence says the SM walker resolves only the commit-time tree, and + * late writes (leaf or table) are invisible. Default 0. + */ +static int gsp_phys_rmcall_gr_recommit_param; +module_param_named(gsp_phys_rmcall_gr_recommit, + gsp_phys_rmcall_gr_recommit_param, int, 0644); +MODULE_PARM_DESC(gsp_phys_rmcall_gr_recommit, + "Re-register the VAS page directory after planting data (default 0)"); + +int gsp_phys_rmcall_gr_recommit_value(void) +{ + return gsp_phys_rmcall_gr_recommit_param; +} +EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_recommit_value); + /* * m95: program each GPC's MMU_CTRL from the hub's PFB MMU_CTRL (the real RM's * grInitGPCMmuPRIRegs matching-fields copy) before a forwarded launch. The -- cgit v1.2.3