summaryrefslogtreecommitdiffstats
path: root/kernel/bar_init.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 12:25:05 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 12:25:05 -0400
commit549d1e8126f96b3515d37037ae22e0dce430c20b (patch)
tree5fc949da9f724b75a84dc8b5fdc4e6462ff94335 /kernel/bar_init.c
parent3b1dcb87279a2f58210b87028a39c9a0932faf2c (diff)
downloadopen-iov-549d1e8126f96b3515d37037ae22e0dce430c20b.tar.gz
open-iov-549d1e8126f96b3515d37037ae22e0dce430c20b.zip
vgsp: per-mdev emulated VRAM size (1.0 multiple mediate sizes)
- nv_vgpu_type_info/ioctl gain vram_mb; nv_vgpu_device gains fb_emul_size bound from the mdev type at create (default 512 MiB). - New nvidia-vgpu-turing-1g type (1024 MiB); turing max_instances 1 -> 2; show_description reports the per-type framebuffer and max_instance. - Thread fb_emul_size through GSCI fb_length/region/frtsOffset, WPR2, NV_PFB_PRI_MMU_LOCAL_MEMORY_RANGE, the vidmem allocator bound and the BAR1 shadow; bar_info callback uses the per-device size. - UNTESTED at commit time: builds clean; validation blocked by the Xid 140 incident (reboot pending). See Handoff-vGPU-IO.md ADDENDUM 48.
Diffstat (limited to 'kernel/bar_init.c')
-rw-r--r--kernel/bar_init.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/bar_init.c b/kernel/bar_init.c
index 5e4b0a0..f4c982a 100644
--- a/kernel/bar_init.c
+++ b/kernel/bar_init.c
@@ -62,9 +62,10 @@ int nv_vgpu_bar_init(struct nv_vgpu_device *vgpu)
* accesses must hit our own clean buffer, not the (broken) host
* GPU's VRAM. Allocated lazily on first use to keep mdev create
* cheap; 256MB to match the GSCI fb size. */
- vgpu->bars[1].vaddr = vzalloc(NV_VGPU_BAR1_SIZE);
+ vgpu->bars[1].vaddr = vzalloc(nv_vgpu_fb_emul_size(vgpu));
if (!vgpu->bars[1].vaddr) {
- nv_vgpu_err(vgpu, "Failed to allocate emulated vidmem (256MB)");
+ nv_vgpu_err(vgpu, "Failed to allocate emulated vidmem (%llu MiB)",
+ (unsigned long long)(nv_vgpu_fb_emul_size(vgpu) >> 20));
return -ENOMEM;
}
nv_vgpu_info(vgpu, "BAR1: gpa=0x%llx, size=0x%llx, emulated vidmem=%p",