From d28e5bb94752ba523b826945409e5ad3206dad5a Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 23 Sep 2026 00:09:13 -0400 Subject: kernel: drop PCFG poison experiment and config-write spam, keep bus-info detail log The poison test (fill every dword of BAR0 0x88000-0x88FFF, 0xB80000- 0xB80EFF, 0xC08000-0xC08EFF with 0x103) did not change the CUDA "Unknown PCIe speed" failure, proving the failing BUS_GET_INFO_V2 index-3 data does not come from any BAR0 mirror read. Combined with the QEMU config-space behavior (link registers zeroed, type=0x92, 0x84 never read from us) the value must come from the VGPU_STATIC_INFO branch in getBusInfos (pVSI-> pcieGpuLinkCaps), i.e. the guest needs the host vGPU static-info payload. Cleanup: remove the poison loops and the per-write CFGWR log; keep the once-per-init PCIe cap print and add per-entry BUS_GET_INFO_V2 logging (index+data) for the ongoing CUDA/UVM work. --- kernel/gsp_rm_emulation.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'kernel/gsp_rm_emulation.c') diff --git a/kernel/gsp_rm_emulation.c b/kernel/gsp_rm_emulation.c index 743a260..1f029b1 100644 --- a/kernel/gsp_rm_emulation.c +++ b/kernel/gsp_rm_emulation.c @@ -1454,6 +1454,10 @@ static void gsp_rm_handle_bus_get_info_v2(struct gsp_emu_context *ctx, nv_vgpu_info(ctx->vgpu, "GSPRM: BUS_GET_INFO_V2 -> %u entries populated (first idx=0x%x)", count, count ? reply->busInfoList[0].index : 0); + for (i = 0; i < count; i++) + nv_vgpu_info(ctx->vgpu, "GSPRM: bus[%u] idx=0x%x data=0x%x", + i, reply->busInfoList[i].index, + reply->busInfoList[i].data); } static void gsp_rm_handle_rm_control(struct gsp_emu_context *ctx, -- cgit v1.2.3