summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-12 00:18:36 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-12 00:18:36 -0500
commitd1dc85a2cc729d39a3cfb45a01c7166cf08f7a92 (patch)
treef930e5d1a02270f633421c1c41847efa5c57ab40 /kernel
parent8c7bf2959c62743899dfdc6097dabfaebf227158 (diff)
downloadopen-iov-d1dc85a2cc729d39a3cfb45a01c7166cf08f7a92.tar.gz
open-iov-d1dc85a2cc729d39a3cfb45a01c7166cf08f7a92.zip
vgsp: default GPU GART size to 256 MiB (was 4096)
BUS_GET_INFO_V2 GPU_GART_SIZE at 4096 MiB made the guest RM allocate a 4 GiB system-memory GART object during X/GL init. That single allocation is the 1048576-page nv_alloc_pages spike that OOM-killed or crashed the 12 GiB guest in c15-c22; with the 4 GiB FB-info over-report fixed and UseSysmemPixmapAccel off, the GART was the remaining source. c23 with bus_gart_mb=256 and the guest X config UseSysmemPixmapAccel=false: X starts, MemFree stays 11 GB, no 1M-page allocation, and glxgears renders 2601 frames in 5 s (520 FPS) on the emulated vGPU. The default should not reintroduce the fatal allocation; 0 remains available for the historical A/B. Evidence: handoff-meta-plan.md CONT.436, c23 X/gzdoom/glxgears logs.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/gsp_rm_emulation.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/gsp_rm_emulation.c b/kernel/gsp_rm_emulation.c
index 581ed19..308de9c 100644
--- a/kernel/gsp_rm_emulation.c
+++ b/kernel/gsp_rm_emulation.c
@@ -3116,10 +3116,12 @@ static void gsp_rm_handle_clk_domain_info(struct gsp_emu_context *ctx, u32 cmd,
* sysmem connection type"). Report a PCIe Gen3 x16 link for the emulated
* vGPU and echo every requested index.
*/
-static u32 gsp_rm_bus_gart_mb = 4096;
+static u32 gsp_rm_bus_gart_mb = 256;
module_param_named(bus_gart_mb, gsp_rm_bus_gart_mb, uint, 0644);
MODULE_PARM_DESC(bus_gart_mb,
- "BUS_GET_INFO_V2 GPU_GART_SIZE in MiB (default 4096; 0 = historical zero reply, A/B)");
+ "BUS_GET_INFO_V2 GPU_GART_SIZE in MiB (default 256; 0 = historical zero reply, A/B). "
+ "4096 made the guest allocate a 4 GiB GART sysmem object at GL init (c15-c22 OOM/crash); "
+ "256 keeps the GART well below guest RAM.");
static u32 tu104_bus_info_data(u32 index)
{