From 4e55a8fab5e274aec72c10c6ca2967d631f934af Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 23:17:31 -0400 Subject: vgsp: m66 - host-readable TSG fault buffers + post-mortem dump m65 proved the scheduled QMD never writes its release anywhere (module sem stays 0, guest page stays 5) - the engine dies or is cancelled before completion. The TSG fault-method buffers (0xa06c010a) are the hardware's record of why; force them to host sysmem (the captured aperture, param gsp_phys_rmcall_faultbuf_sys=1) and dump both buffers' first 8 words in the post-mortem so an engine fault entry (faulting address/engine) is visible. --- kernel/gsp_phys_gpu.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'kernel/gsp_phys_gpu.c') diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c index f323c6c..3429507 100644 --- a/kernel/gsp_phys_gpu.c +++ b/kernel/gsp_phys_gpu.c @@ -725,6 +725,26 @@ int gsp_phys_rmcall_gr_rel_mod_value(void) } EXPORT_SYMBOL_GPL(gsp_phys_rmcall_gr_rel_mod_value); +/* + * m66 fault-buffer aperture (gsp_phys_rmcall_faultbuf_sys; default 0). When + * set, the mode-35 TSG fault-method buffers are registered host sysmem chunks + * (the aperture the capture itself used) instead of server FBMEM, so engine + * fault entries written by the hardware after a launch are host-readable and + * can be dumped in the post-mortem. Diagnostic only; the promote shape is + * otherwise identical. + */ +static int gsp_phys_rmcall_faultbuf_sys_param; +module_param_named(gsp_phys_rmcall_faultbuf_sys, + gsp_phys_rmcall_faultbuf_sys_param, int, 0644); +MODULE_PARM_DESC(gsp_phys_rmcall_faultbuf_sys, + "Register the mode-35 TSG fault buffers as host sysmem (captured aperture; default 0 = FBMEM first)"); + +int gsp_phys_rmcall_faultbuf_sys_value(void) +{ + return gsp_phys_rmcall_faultbuf_sys_param; +} +EXPORT_SYMBOL_GPL(gsp_phys_rmcall_faultbuf_sys_value); + /* * Ladder VAS ownership selector (gsp_phys_rmcall_vas_shared; default 0). * The H1 GR promote wall is a direct consequence of the ladder's -- cgit v1.2.3