diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 10:13:04 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 10:13:04 -0400 |
| commit | c21f7099a8544b35628a7e104f02c5335a08d79d (patch) | |
| tree | c840bbb360f2c09b1d58609b9b327bd37cf36d89 /kernel/main.c | |
| parent | d018cc38014f96dfe947d9064010fd43977b10f7 (diff) | |
| download | open-iov-c21f7099a8544b35628a7e104f02c5335a08d79d.tar.gz open-iov-c21f7099a8544b35628a7e104f02c5335a08d79d.zip | |
gsp-phys: command-queue TX and the GSP-RM unload RPC for clean teardown
Adds a minimal msgq producer on the command queue (element layout, checksum, sequence, dma_wmb before writePtr, doorbell) and submits the UNLOADING_GUEST_DRIVER RPC so GSP-RM shuts down and sets the scratch14 handoff bit the Booter Unload gate needs. Release attempts the RPC once before quiescing when a boot ran; on-demand testing is available through the debugfs file gsp-phys-unload-rpc while the module owns the GPU. GSP-RM processor suspend is polled on the GSP mailbox.
Diffstat (limited to 'kernel/main.c')
| -rw-r--r-- | kernel/main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c index f86dc98..30156ab 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -32,6 +32,7 @@ #include "nv-vgpu-vfio-interface.h" #include "gsp_phys_gpu.h" +#include "gsp_phys_booter.h" #define NV_VERSION_STRING "550.163.01" @@ -1453,6 +1454,12 @@ static int __init nv_vgpu_init(void) ret); } + /* Test-enabling trigger for the GSP-RM unload RPC; inert unless a + * stage-3d boot ran on a live claim (gsp_phys_boot=1). Removed on + * module exit. Creation failure is non-fatal. */ + if (gsp_phys_boot_debugfs_init()) + pr_warn("gsp-resman-vfio: gsp-phys-unload-rpc debugfs trigger unavailable\n"); + pr_info("NVIDIA vGPU VFIO driver loaded (version %s)\n", NVIDIA_VGPU_VFIO_VERSION); /* Start the emulated-GPU progress service: it discovers the guest's * GPU-VA -> guest-PA map and applies copy-engine semaphore releases so @@ -1488,6 +1495,7 @@ static void __exit nv_vgpu_exit(void) pr_info("gsp-resman-vfio: nv_vgpu_exit: clearing VFIO ops to break circular dependency\n"); g_vgpu_vfio_ops = NULL; + gsp_phys_boot_debugfs_fini(); gsp_phys_gpu_release(); if (nv_vgpu_driver.device_count > 0) { |
