View previous topic :: View next topic |
Author |
Message |
R0b0t1 Apprentice
Joined: 05 Jun 2008 Posts: 264
|
Posted: Thu Apr 27, 2017 1:46 am Post subject: Intel VT-g (integrated graphics adapter virtualization). |
|
|
Does anyone have any idea of how to use it? I had been waiting for it to be completed and it is now in the kernel, but I am wondering if userspace utilities still need to catch up. My usual method of checking the Gentoo and Arch wikis did no good. |
|
Back to top |
|
|
Tribue n00b
Joined: 05 Apr 2007 Posts: 13
|
Posted: Mon Dec 18, 2017 8:53 am Post subject: Re: Intel VT-g (integrated graphics adapter virtualization). |
|
|
R0b0t1 wrote: | Does anyone have any idea of how to use it? I had been waiting for it to be completed and it is now in the kernel, but I am wondering if userspace utilities still need to catch up. My usual method of checking the Gentoo and Arch wikis did no good. |
If you have hardware supporting GVT-g, you can run a virtual machine with Oracle Virtualbox or VMware Workstation, and see if the guest operating system has the same 3D benchmarks as the host, for example with Unigine Heaven Benchmark 4.0 which is available for several operating systems. |
|
Back to top |
|
|
blopsalot Apprentice
Joined: 28 Jan 2017 Posts: 231
|
Posted: Tue Dec 19, 2017 9:52 am Post subject: |
|
|
https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide
Quote: | NOTICE: For KVMGT, you also can use the current upstream Linux kernel and QEMU directly since all the enabling patches have been upstreamed. |
KVMGT Gentoo Basic Instructions
kernel config: ENABLE: CONFIG_DRM_I915_GVT, CONFIG_DRM_I915_GVT_KVMGT, which depends on CONFIG_VFIO_MDEV and CONFIG_VFIO_MDEV_DEVICE.
Relevant QEMU USE Flags: Code: | echo -e "-xen sdl spice vhost-net fdt qemu_softmmu_targets_x86_64" > /etc/portage/package.use/qemu |
Emerge: Code: | emerge qemu x11-misc/x11vnc |
Grub Update
Code: | GRUB_CMDLINE_LINUX_DEFAULT="... i915.enable_gvt=1 ..."
|
Linux Guest Setup Xorg Configure
Quote: |
Code: | /etc/X11/xorg.conf.d/0-gvt.conf |
Get BusID from lspci
Code: |
Section "Device" Identifier "intel" Driver "intel" BusID "PCI:0:4:0" EndSection
Section "Screen" Identifier "intel" Device "intel" EndSection |
|
Check mdev Module
Quote: |
After you boot up you host to GVT-g menuentry, you make sure the "mdev_supported_types" node with differenct vgpu type existed(The "V#ID" represent the corresponding platform, "V4" means it is "Broadwell" platform, "V5" means it is "Skylake" or "Kabylake" platform), the example as below
Code: |
ls -l /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/
total 0
drwxr-xr-x 5 root root 0 Apr 10 21:24 ./
drwxr-xr-x 12 root root 0 Apr 10 20:04 ../
drwxr-xr-x 3 root root 0 Apr 10 21:24 i915-GVTg_V4_1/ $ This node with low_gm_size=512MB, high_gm_size=2048MB, fense=4, resolution=1920x1200
drwxr-xr-x 3 root root 0 Apr 10 21:24 i915-GVTg_V4_2/ # This node with low_gm_size=256MB, high_gm_size=1024MB, fense=4, resolution=1920x1200
drwxr-xr-x 3 root root 0 Apr 10 21:24 i915-GVTg_V4_4/ # This node with low_gm_size=128MB, high_gm_size=512MB, fense=4, resolution=1920x1200
drwxr-xr-x 3 root root 0 Apr 10 21:24 i915-GVTg_V4_8/ # This node with low_gm_size=64MB, high_gm_size=384MB, fense=4, resolution=1024x768 |
And you can check the detail description for each vgpu type,
Code: | root@gvtg-host:/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V4_1# cat description
low_gm_size: 512MB
high_gm_size: 2048MB
fence: 4
resolution: 1920x1200 |
|
Generate the uuid for create VGPU
Quote: |
Use Ubuntu as example, you can use the third-party tool to generate uuid like "uuid", "uuidgen", if we need to create 3 VM, we must create 3 uuid for 3 VGPU, like below:
root@gvtg-host:~# Code: | uuid -n 3
a297db4a-f4c2-11e6-90f6-d3b88d6c9525
a297de6a-f4c2-11e6-90f7-cb6a86ce449f
a297deec-f4c2-11e6-90f8-c39f1ae774e5 |
|
Create VGPU
Quote: |
Use the uuid you generated to create VGPU, notes: if you want to boot up multi guests, you can use echo "uuid" > "/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V#ID_#Type/create", like below:
Code: |
echo "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" > "/sys/bus/pci/devices/0000:00:02.0/ mdev_supported_types/i915-GVTg_V4_4/create"
echo "a297de6a-f4c2-11e6-90f7-cb6a86ce449f" > "/sys/bus/pci/devices/0000:00:02.0/ mdev_supported_types/i915-GVTg_V4_4/create"
echo "a297deec-f4c2-11e6-90f8-c39f1ae774e5" > "/sys/bus/pci/devices/0000:00:02.0/ mdev_supported_types/i915-GVTg_V4_4/create"
|
Then all the vgpu directory you created can be found at "/sys/bus/pci/devices/0000:00:02.0/"
|
Remove VGPU
Quote: |
If you want to remove one vgpu you create, you need to "echo 1 > remove" at the vgpu directory and created, the example as below:
Code: | echo 1 > /sys/bus/pci/devices/0000:00:02.0/a297db4a-f4c2-11e6-90f6-d3b88d6c9525/remove |
If you want remove all vgpu you created, you can run below command.
Code: | for i in /sys/bus/pci/devices/0000:00:02.0/*/remove; do echo 1 > $i; done |
|
Create KVMGT VM
Code: | qemu-system-x86_64 \
-m 2048 -smp 2 -M pc \
-name gvt-g-guest \
-hda /home/img/gentoo.qcow2 \
-bios /usr/share/seabios/bios.bin \
-enable-kvm \
-net user,hostfwd=tcp::10022-:22 \
-net user,hostfwd=tcp::15900-:5900 \
-net nic,model=virtio \
-vga qxl \
-k en-us \
-serial stdio \
-vnc :1 \
-machine kernel_irqchip=on \
-global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 \
-cpu host -usb -usbdevice tablet \
-device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/a297db4a-f4c2-11e6-90f6-d3b88d6c9525,rombar=0 |
Access KVMGT VM
ssh 22 is forwarded to 127.0.0.1:10022
vnc 5900 is forwarded to 127.0.0.1:15900 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|