Bug#923393: CONFIG_DRM_I915_GVT_KVMGT is not enabled
IMHO, KVMGT should be enabled as soon as possible.
Since the modules would not be loaded by default and the user have explicit to enable it, i see more benefits.
I've tested a scenario with a precompiled "MainlineBuilds" kernel (5.3.0-050300rc5-generic #201908182231) from Ubuntu on my Debian sid system (with Intel HD 530 Skylake):
- After loading "modprobe kvmgt", i've got 2 types:
root@nietzsche:~# cat /sys/devices/pci0000\:00/0000\:00\:02.0/mdev_supported_types/i915-GVTg_V5_*/description
low_gm_size: 128MB
high_gm_size: 512MB
fence: 4
resolution: 1920x1200
weight: 4
low_gm_size: 64MB
high_gm_size: 384MB
fence: 4
resolution: 1024x768
weight: 2
- Since i don't use a remote protocol (as spice), i tried this one:
https://github.com/intel/gvt-linux/wiki/Dma_Buf_User_Guide
"A new feature called “Local display” has been supported in GVT-g (KVMGT only) by introducing “dma-buf”, a generic kernel level frame work to share buffers."
- My testing scenario: run Libreelec (Kodi) in a qemu-kvm container - and it works...
To do this (first enable enable_gvt, load modules, create vGPU [1]), give the user privileges:
markus@nietzsche:~$ cat /etc/udev/rules.d/10-qemu.rules
SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"
- Start qemu from commandline:
kvm -hda ./kodi.img \
-boot c -m 2G \
-vga none \
-display gtk,gl=on \
-soundhw ac97 \
-smp cores=4,threads=2,sockets=1 \
-enable-kvm \
-cpu host \
-device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000\:00\:02.0/a297db4a-f4c2-11e6-90f6-d3b88d6c9525,display=on,x-igd-opregion=on,driver=vfio-pci-nohotplug,ramfb=on
- Libreelec output sysinfo:
GPU: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) [...]
The performance playing a full-hd video is about 60% less CPU usage comparing to virgl!!!
* Problems:
- When using the higher resolution (1920x1200 in my case), the VM freezes with "RLIMIT_MEMLOCK (67108864) exceeded"
dirty fix - set memlock to 1GB for specific user [2]:
root@nietzsche:~# cat /etc/security/limits.d/99-memlock.conf
markus hard memlock 1048576
markus soft memlock 1048576
- The resolution isn't flexible - maybe on Linux guests, this could be fixed via xorg (or wayland?) [3]
- After shutdown a VM using GVT-g (Dma_Buf) and restart another VM without kvmgt, the CPU-usage is very high! Removing the module is solving this (but i don't know, if this just happens, because I've tested it in a weird environment Debian sid with an Ubuntu maintainer kernel).
- For Linux guests, it seems, this is only working with an compatible kernel also on the guest side...
So, i think, it should be enabled in the default kernel, because it has great benefits!
On the other side: there are some problems... but the user should have the possibility to activate the modules and test it! The modules have to enabled manually - and in combination with spice, it seems to be more stable than with the newer "dma-buf"-mode!
Thanks,
Markus
[1] https://wiki.archlinux.org/index.php/Intel_GVT-g
[2] https://stackoverflow.com/questions/39187619/vfio-dma-map-error-when-passthrough-gpu-using-libvirt
[3] https://github.com/intel/gvt-linux/issues/44
Reply to: