When passing-through via vfio-pci using QEMU 7.1.0 and OVMF, it appears
that qemu preallocates all guest system memory.

qemu-system-x86_64 \
    -no-user-config \
    -nodefaults \
    -nographic \
    -rtc base=utc \
    -boot strict=on \
    -machine pc,accel=kvm,dump-guest-core=off \
    -cpu host,migratable=off \
    -smp 8 \
    -m size=8G \
    -overcommit mem-lock=off \
    -device vfio-pci,host=03:00.0 \
    ...

  PID USER      PR  NI     VIRT      RES  %CPU  %MEM     TIME+ S COMMAND
 4151 root      20   0 13560.8m  *8310.8m* 100.0  52.6   0:25.06 S
qemu-system-x86_64


If I remove just the vfio-pci device argument, it appears that qemu no
longer preallocates all guest system memory.

  PID USER      PR  NI     VIRT      RES  %CPU  %MEM     TIME+ S COMMAND
 5049 root      20   0 13414.0m   *762.4m*   0.0   4.8   0:27.06 S
qemu-system-x86_64


I am curious if anyone has any context on or experience with this
functionality.  Does anyone know if preallocation is a requirement for VFIO
with QEMU or if preallocation can be disabled?

I am speculating that QEMU is actually preallocating as opposed to the
guest touching every page of system memory.

Thanks.
_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://listman.redhat.com/mailman/listinfo/vfio-users

Reply via email to