diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-12 00:18:36 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-12 00:18:36 -0500 |
| commit | d1dc85a2cc729d39a3cfb45a01c7166cf08f7a92 (patch) | |
| tree | f930e5d1a02270f633421c1c41847efa5c57ab40 | |
| parent | 8c7bf2959c62743899dfdc6097dabfaebf227158 (diff) | |
| download | open-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.
| -rw-r--r-- | kernel/gsp_rm_emulation.c | 6 |
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) { |
