Giter Club home page Giter Club logo

gvt-linux's Introduction

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.

gvt-linux's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gvt-linux's Issues

Can't boot successfully after installing the Intel Graphics Driver 15.45.23.4860

cpu:I5 6500
Host OS: Ubuntu 16.04 server
Qemu: 2.12
kernel: 4.14
The Qemu and the Kernel are build following the https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide.

After creating the virtual card by mdev, I create and run a new vm by QEMU with a script.
I can see the two GFX cards "qxl" and "vga"(not the full name). After installing the latest Intel Graphics Driver 15.45.23.4860(64 bit), the device manager shows "Intel HD Graphics 530" which was shown as "vga" and another one is also the "qxl". Everything is ok until now, however, it always keep at the "start Windows" when I reboot the vm to make it effective.
I try to comment the vfio device in the script, it could start okay with it, but false again when I un-comment it.
I don't know what's wrong with it?

Append:
I use spice for the remote client.

Here is kernel log:

[ 390.511764] Graphics resource is not enough for the guest
[ 390.514952] Now vgpu 1 will enter failsafe mode.
[ 698.070855] gvt: vgpu 1: untracked MMIO 00000000 len 1

[Success] GVT-g w/ dmabuf works on Archlinux

This isn't an issue report. Just reporting that GVT-g appears to be working on my Dell i7 Skylake laptop with Intel HD 520 graphics. Pretty exciting stuff.

This is with the gvt 4.15 kernel and qvt qemu 2.10 and I compiled into Archlinux PKGBUILD packages for easy installation and removal. It works, although it is a bit unstable and sometimes causes the guest and/or host to freeze for several seconds or graphics corruption. More baking is needed on the dmabuf framebuffer redirection stuff but fun stuff. I'm going to try running some 3D tests soon as it appears to expose DirectX 11 & 12.

GVT-g

OVMF / UEFI support?

When will it come for VT-d? What are the problems at the moment? What has to be modified? Will this ever work? Thanks.

If gvt support direct show

Hi:
I tested branch gvt-stable-4.14, all works fine. I want know if this support direct show vgpu in the screen?
like "i915.hvm_boot_foreground" of project "Igvtg-kernel". Looking forward for reply!

[Question] Display resolution setup

I managed run windows 10 guest using local display and gtk. But VM display resolution hardcored to 1920x1200 while wanted (my real display) resolution is 1920x1080. Can this be configured somehow? Thanks.

Also qemu output

vfio_display_get_dmabuf: new dmabuf: id 1, res 1920x1200, format XR24, plane primary, fd 25, hot +-21971+0

xengt module cannot be added

Running sudo modprobe xengt gives me this: modprobe: ERROR: could not insert 'xengt': Invalid argument.

Tried on Linux Mint 18.3 on gvt-stable-4.14 branch

Sound problem in windows VM

I use GVT on a 7th i3 7100u system. The host OS is CENTOS 7.5, and I install a windows 7 as a KVM virtual machine on CENTOS, with intel GVT technology, the win7 VM can share GPU with host CENTOS.
Everything is okay, but the sound from windows is bad, I hear something like crackles in sound.

Windows 7 VM use AC97 virtual sound adapter, qemu-kvm uses pulse audio as its sound infrastructure.
I use Igvtg-qemu stable 2.10.0 and GVT-linux kernel 4.14.

The same configuration works at spice mode, the sound are prefect.

Any one can response me are appreciate.

vga std and gvt error

===================== gust dmesg===============================
[ 6.152430] [drm] Virtual GPU for Intel GVT-g detected.
[ 6.152913] [drm] Replacing VGA console driver
[ 6.162349] Console: switching to colour dummy device 80x25
[ 6.162408] [drm] iGVT-g active, disabling use of stolen memory
[ 6.166568] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 6.166569] [drm] Driver supports precise vblank timestamp query.
[ 6.166576] i915 0000:00:04.0: BAR 6: can't assign [??? 0x00000000 flags 0x20000000] (bogus alignment)
[ 6.166577] [drm] Failed to find VBIOS tables (VBT)
[ 6.166821] i915 0000:00:04.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[ 6.169103] [drm:drm_calc_timestamping_constants [drm]] ERROR crtc 37: Can't calculate constants, dotclock = 0!
[ 6.169189] WARNING: CPU: 0 PID: 337 at drivers/gpu/drm/drm_vblank.c:612 drm_calc_vbltimestamp_from_scanoutpos+0x2cb/0x320 [drm]
[ 6.169189] Modules linked in: bochs_drm(+) ttm i915(+) video i2c_algo_bit drm_kms_helper crc32c_intel serio_raw drm e1000 ata_generic pata_acpi qemu_fw_cfg
[ 6.169196] CPU: 0 PID: 337 Comm: systemd-udevd Not tainted 4.16.3-200.fc27.x86_64 #1
[ 6.169197] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.1-0-g0551a4be2c-prebuilt.qemu-project.org 04/01/2014
[ 6.169203] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x2cb/0x320 [drm]
[ 6.169203] RSP: 0018:ffffbe16408cf8c0 EFLAGS: 00010082
[ 6.169204] RAX: ffffffffc06547c0 RBX: ffff9d8273840000 RCX: 0000000000000000
[ 6.169205] RDX: ffffffffc0466ce8 RSI: 0000000000000001 RDI: ffffffffc0464cf4
[ 6.169205] RBP: ffffbe16408cf928 R08: 0000000000000000 R09: ffffffffc0447ea0
[ 6.169206] R10: ffff9d827a50a878 R11: ffffffffc05519b0 R12: 0000000000000000
[ 6.169206] R13: ffff9d827a50a800 R14: ffffbe16408cf93c R15: ffffbe16408cf960
[ 6.169208] FS: 00007f80a4f571c0(0000) GS:ffff9d827fc00000(0000) knlGS:0000000000000000
[ 6.169208] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6.169209] CR2: 00007f5849c03218 CR3: 0000000136292001 CR4: 0000000000360ef0
[ 6.169211] Call Trace:
[ 6.169219] ? drm_calc_timestamping_constants+0x15a/0x170 [drm]
[ 6.169224] drm_get_last_vbltimestamp+0x54/0x90 [drm]
[ 6.169229] drm_reset_vblank_timestamp+0x54/0xc0 [drm]
[ 6.169234] drm_crtc_vblank_on+0x83/0xe0 [drm]
[ 6.169266] intel_modeset_setup_hw_state+0xb8f/0x1000 [i915]
[ 6.169289] ? gen2_write16+0x110/0x110 [i915]
[ 6.169311] intel_modeset_init+0x7eb/0x1970 [i915]
[ 6.169334] ? intel_setup_gmbus+0x2a5/0x2b0 [i915]
[ 6.169352] i915_driver_load+0xb5d/0x17c0 [i915]
[ 6.169378] ? acpi_dev_found+0x5f/0x70
[ 6.169380] local_pci_probe+0x42/0xa0
[ 6.169388] ? pci_assign_irq+0x27/0x130
[ 6.169389] pci_device_probe+0x141/0x1b0
[ 6.169397] driver_probe_device+0x30b/0x480
[ 6.169402] __driver_attach+0xb8/0xe0
[ 6.169404] ? driver_probe_device+0x480/0x480
[ 6.169405] bus_for_each_dev+0x76/0xc0
[ 6.169408] ? klist_add_tail+0x3b/0x60
[ 6.169410] bus_add_driver+0x161/0x260
[ 6.169411] ? 0xffffffffc0733000
[ 6.169412] driver_register+0x57/0xc0
[ 6.169414] ? 0xffffffffc0733000
[ 6.169416] do_one_initcall+0x4e/0x18d
[ 6.169423] ? _cond_resched+0x15/0x40
[ 6.169428] ? kmem_cache_alloc_trace+0xa8/0x1c0
[ 6.169431] ? do_init_module+0x22/0x201
[ 6.169432] do_init_module+0x5b/0x201
[ 6.169439] load_module+0x259b/0x2c40
[ 6.169441] ? SYSC_init_module+0x162/0x190
[ 6.169442] ? _cond_resched+0x15/0x40
[ 6.169443] SYSC_init_module+0x162/0x190
[ 6.169444] do_syscall_64+0x74/0x180
[ 6.169448] entry_SYSCALL_64_after_hwframe+0x3d/0xa2
[ 6.169455] RIP: 0033:0x7f80a48639ba
[ 6.169455] RSP: 002b:00007ffc0b098b48 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
[ 6.169456] RAX: ffffffffffffffda RBX: 000055e92f812d20 RCX: 00007f80a48639ba
[ 6.169457] RDX: 00007f80a41251ad RSI: 00000000003c206b RDI: 000055e9300973d0
[ 6.169458] RBP: 00007f80a41251ad R08: 0000000000000005 R09: 00007ffc0b096a4b
[ 6.169458] R10: 0000000000000005 R11: 0000000000000246 R12: 000055e9300973d0
[ 6.169459] R13: 000055e92f810c70 R14: 0000000000020000 R15: 000055e92e10c7fc
[ 6.169459] Code: e1 48 c7 c2 e8 6c 46 c0 be 01 00 00 00 48 c7 c7 f4 4c 46 c0 e8 b7 eb ff ff 48 8b 83 98 03 00 00 48 83 78 20 00 0f 84 69 fd ff ff <0f> 0b 45 31 ed e9 62 fd ff ff 48 c7 c2 b0 6c 46 c0 31 f6 48 c7
[ 6.169481] ---[ end trace 50c05b3bbf99f65a ]---

===================== gust uname -a ===================
Linux localhost.localdomain 4.16.3-200.fc27.x86_64 #1 SMP Thu Apr 19 19:33:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

===================host =======================
linux-4.17.0-rc2 gvt-staging branch
qemu command line
-vga std and kvm gvt

Kernel

I modprobe the kernel and can't seem to get it to work.

Kernel is 4.1. Qemu is 2.9. Using Virt-Manager. Modules and initram all built and ran as instructed. I modprobe and get outputs for both VFIO and KVMGT. The virtual machine does not allow me to install Intel HD drivers.

I am using Arch Linux.

[Benchmark] Unigine Tropics w/ Intel GVT-g

This is a benchmark testing the performance of an Intel HD 520 found on my Core i7 6500U based laptop. The kernel is 4.15 patched w/ GVT+dmabuf and QEMU 2.10 w/ GVT+dmabuf. All configurations are tested with the same Unigine benchmark settings: high quality textures and shaders, No AA, full-screen, and 1920x1080 resolution. Vsync is enabled in all benchmark tests to avoid frequent frame rendering pauses in vfio passthrough mode.

Host: Archlinux w/ Mesa 17.3.3 + Intel v1:2.99.917+811+g5c7e4e0e video driver
Guest: Windows 10 Pro 1709 (all updates installed) + Intel v15.60.2.4901 video driver

As we can see with this particular benchmark, GVT-g shared passthrough is offering better performance than the native Linux OpenGL version of the benchmark. Very nice!

Results:

Linux host + Windows 10 Guest w/ GVT-g passthrough + dmabuf

[OpenGL] Score: 456 | FPS: 18.1
[Direct3D 11] Score: 424 | FPS: 16.8
[Direct3D 9] Score: 413 | FPS: 16.4

Linux (Linux version)

[OpenGL] Score: 342 | FPS: 13.6

Linux + Wine 3.1 (Windows version)

[Direct3D 9] Score: 245 | FPS 9.7
[OpenGL] Invalid results. Extensive rendering issues and missing textures
[Direct3D 11] Score: 307 | FPS: 12.2 (Likely invalid due to bad shader rendering)

GVT-g

custom display resolution when creating vgpu

Hi,

gvtg with dmabuf works quite well on my laptop however I searched but did not find any way to change the display resolution when creating a vgpu (I'd like to set 1920x1080 instead of 1920x1200). Is it possible ?

No graphics output - "Guest has not initialized the display (yet)"

I use qemu 2.12 and libvirt 4.3 and I struggle with booting my Windows machine with the mdev Intel vgpu attached.
My issue is also "Guest has not initialized the display (yet)" like from DocMAX in issue 20, but the proposed solution to attach a qxl graphics card leads to black screen for me. I tried to connect with virt-manager and virt-viewer, both without success.

I can only boot with graphical output when I remove the mdev vgpu again, but than Windows does not let me install the Intel graphics driver: "The system does not fulfil the minimum requirements" - obviously because no Intel vgpu is attached.

Help is very much appreciated!

[Question] Does dma-buf work after live migrations?

I was wondering if dma-buf works on a target system after a live migration. Also as it is my understanding that a Guest Driver restart is not required unless you are migrating to a target with a different iGPU, is this correct?

I might setup a test jig to see if this works imperially but I wanted to see if anyone has the answer readily available before I go setup a system to build and test.

Low framerate with dma-buf output

Hello,

I have dma-buf working with GVT-g on kernel 4.16 and QEMU 2.12. The framerate of the framebuffer output is very low however (seems to be around ~20 fps). I've run the Heaven benchmark in the VM, and that seems to perform about as expected, so it's only the dma-buf output that's slow. Does anyone else experience this?

I'm using Libvirt with local SPICE and OpenGL. Also tried different Intel drivers in the VM, no difference.

Test dmabuf failed

Hi:
I was test the dmabuf feature of gvt-g.
kernel branch :gvt-stable-4.14
qemu branch : stable-2.10.0

qemu command:
qemu-system-x86_64 -m 1024 -smp 2 \
    -bios /opt/qemu-kraxel/bin/bios.bin -enable-kvm \
    -debugcon file:/var/log/bios.log -global isa-debugcon.iobase=0x402 -monitor stdio \
    -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 \
    -M pc -machine kernel_irqchip=on \
    -vga qxl -k en-us -cpu host \
    -display sdl,gl=on \
    -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/9f83f7a5-823d-45dc-88b8-659c55cab487,rombar=0,x-display=on \
    -net nic,macaddr=00:A1:00:00:00:1A -net tap,script=/usr/bin/qemu-ifup \
    -hda /home/mq/vm-img/win10.qcow2 \
    -boot menu=on 
VM running log:
sdl2_window_create:98: SDL_GL_CONTEXT_EGL 0
sdl2_window_create:98: SDL_GL_CONTEXT_EGL 0
sdl2_window_create:98: SDL_GL_CONTEXT_EGL 0
vfio_display_get_dmabuf: new dmabuf: id 1, res 1024x768, format XR24, plane primary, fd 23, hot +-14080+16777216
primary plane not initialized by guest

When win10 start load IGD driver, "primary plane not initialized by guest " start print !
If I missing something?

I check through the kernel source, found that the DSPCNTR register value is : 84000000, after win10 load IGD driver, the value is changed to : 04000000. And DSPSURF register is still 00000000. Why?

No dma-buf output, Cursor plane not initialized by guest, ubuntu 16.04

screenshot from 2018-02-18 13-16-48
(1440x900 is the resolution of my macbookair7,2 with hd 6000) Ubuntu 16.04.3. stable-4.14 gvt-linux and igvtg-qemu 2.10.0 stable compiled and working. Using the command line options as stated in the dma-buf user guide. Using gtk with gl=on. Booting with only the GVTg card available results in a black window with the message (#times) cursor plane not initialized by guest. No graphics output is available. This is under Ubuntu 16.04.3, and I am not sure how the folks running arch linux have it working perfectly, but not for ubuntu. This is with the pc-bios/bios.bin supplied with the qemu I compiled, and OVMF-code.fd from the debian apt repositories. This is also with both q35 and i440fx. No combination of machines and bios' made it work.

gvt can't work when multi gpu card inserted

gvt can't work when multi gpu card inserted.
[devs@localhost ]$ lspci
00:00.0 Host bridge: Intel Corporation Intel Kaby Lake Host Bridge (rev 05)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)
00:02.0 Display controller: Intel Corporation HD Graphics 630 (rev 04)
00:14.0 USB controller: Intel Corporation 200 Series PCH USB 3.0 xHCI Controller
00:14.2 Signal processing controller: Intel Corporation 200 Series PCH Thermal Subsystem
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)
00:1f.0 ISA bridge: Intel Corporation 200 Series PCH LPC Controller (B250)
00:1f.2 Memory controller: Intel Corporation 200 Series PCH PMC
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series PCH SMBus Controller
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Turks PRO [Radeon HD 7570]

[devs@localhost ]$ uname -a
Linux localhost.localdomain 4.16.1 #4 SMP Sun Apr 15 18:20:14 CST 2018 x86_64 x86_64 x86_64 GNU/Linux

vfio_display_get_dmabuf: new dmabuf: id 1, res 1920x1200, format XR24, plane primary, fd 11, hot +0+20480

only one new dmabuf printed

vGPU resolution

Hi,
I'm currently using intel GVT with a Windows guest and displaying it with gtk.

When looking at the resolutions (i915-GVTg_V5_4 and i915-GVTg_V5_8 in the mdev_supported_types folder) of the virtual GPU, I can only choose between 1024x768 and 1920x1200.

When setting my output on the correct mode for the lower resolution, I have no issues.

On the other hand, the higher resolution (1920x1200) is above the current mode I'm using, therefore the VM goes off screen. Setting the QEMU windows as fullscreen gives me unexpected behavior (guest randomly going off screen and the mouse cursor is off from its real position).

Is there a way to get a vGPU with a resolution of 1920x1080? I tried adding a new mode with xrandr (for a resolution of 1920x1200) to no CPU is i7-7700K (8th generation)

[Download] Pre-built GVT+Dmabuf QEMU package for Archlinux

Update: Please use Linux 4.16rc2 or newer kernels to have the kernel-side GVT + Dmabuf components. A patched QEMU is still needed.

I went ahead and packaged up QEMU 2.10 with GVT-g and Dmabuf support that I compiled on my system. The QEMU package is hosted on my OneDrive account. This package is only designed for use with Archlinux and derivative distributions and can be installed with 'pacman -U'. Be sure to follow the applicable parts of the official guide and add the proper qemu and kernel boot options for VFIO GPU passthrough to work.

Download (Built from 'stable-2.10.0' git as of 2/20/2018):
https://1drv.ms/u/s!Am9uPEIZtbF9g1vFKo3-yNuiU8Vb

Optional: Source code

System logs being flooded with GVT messages

I have GVT with dmabuf working but my system logs are being flooded by

kernel: gvt: vgpu 1: invalid range gmadr 0x0 size 0x0
kernel: gvt: vgpu 1: invalid gma address: 0

Is there any way to turn these messages off? I am using qemu 2.12rc3 and kernel 4.16.2.

-bash: /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/: No file or directory

root@KL30:/sys/bus/pci/devices/0000:00:02.0# echo "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" > "/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create"
-bash: /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create: No file or directory
root@KL30:cd /sys/bus/pci/devices/0000:00:02.0mdev_supported_types
-bash: /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/: No file or directory
root@KL30:/sys/bus/pci/devices/0000:00:02.0# uname -r
4.14.15+
root@KL30:/sys/bus/pci/devices/0000:00:02.0# ls
backlight consistent_dma_mask_bits dma_mask_bits firmware_node index max_link_speed numa_node resource revision uevent
boot_vga current_link_speed driver graphics irq max_link_width power resource0 rom vendor
broken_parity_status current_link_width driver_override i2c-0 label modalias remove resource2 subsystem
class d3cold_allowed drm i2c-1 local_cpulist msi_bus rescan resource2_wc subsystem_device
config device enable i2c-2 local_cpus msi_irqs reset resource4 subsystem_vendor
root@KL30:/sys/bus/pci/devices/0000:00:02.0#

IGD OpRegion feature: No such device

vfio error: 59c57b6c-13ee-4055-846e-e4d3dc55d389: does not support requested IGD OpRegion feature: No such device

What does this error mean? How can i fix this?

'Not in host or MPT modules not found' error in XenGT

hello. I have a question about install XenGT.

I try to install XenGT ver 4.10(gvt_linux ver 4.14.15+).

So I succeeded in booting XenGT.

But I can't create virtual machine.
(/sys/kernel/vgt/control/create_vgt_instance failed create vgt instance. failed: errno=2)

As you can see, XenGT can't create 'create_vgt_instance'. also I can't found '/sys/kernel/vgt' folder.

And then, I've inserted "drm.debug=oxf" in grub to check this problem.

I found "Not in host or MPT modules not found" message in dmesg.

I think the kernel seems to fail to load the MPT module.

How can I fix it? Please help me.

My system is as follows.

CPU : Intel 7th i7 7700
Mainboard : Asus B250M-A(B250 Chipset)

P.S If you need to more information anything, please reply.

The Centos7.5 can not support

git clone https://github.com/intel/gvt-linux.git

cd gvt-linux

git checkout gvt-stable-4.14

echo ""|make oldconfig

vi .config

change y for CONFIG_DRM_I915_GVT, CONFIG_DRM_I915_GVT_KVMGT and CONFIG_DRM_I915_GVT_XENGT CONFIG_VFIO_MDEV and CONFIG_VFIO_MDEV_DEVICE.

make -j8 && make modules_install && make install

vi /boot/grub2/grub.cfg

menuentry 'CentOS Linux (4.14.15+) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-862.el7.x86_64-advanced-dacc0767-4de5-45f5-a580-3d7cfa65073d' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod xfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 0216cf0f-102e-41e8-b562-ce6d35d06fc1
else
search --no-floppy --fs-uuid --set=root 0216cf0f-102e-41e8-b562-ce6d35d06fc1
fi
linux16 /vmlinuz-4.14.15+ root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 i915.enable_gvt=1 kvm.ignore_msrs=1
initrd16 /initramfs-4.14.15+.img
}

done

reboot os from new kernel boot

no this /sys/class/mdev_bus

but same practice for ubuntu 18.04 is good ,Centos7.5 is not support

Errors on Skylake/4.13

After enabling kvmgt I see some errors in log:
kernel: [drm:new_mmio_info.constprop.17 [i915]] *ERROR* gvt: dup mmio definition offset 22040 kernel: [drm:new_mmio_info.constprop.17 [i915]] *ERROR* gvt: dup mmio definition offset 138124 kernel: [drm:new_mmio_info.constprop.17 [i915]] *ERROR* gvt: dup mmio definition offset 1a028 kernel: [drm:new_mmio_info.constprop.17 [i915]] *ERROR* gvt: dup mmio definition offset 940c kernel: [drm:new_mmio_info.constprop.17 [i915]] *ERROR* gvt: dup mmio definition offset 4ab0 kernel: [drm:new_mmio_info.constprop.17 [i915]] *ERROR* gvt: dup mmio definition offset 20d4 kernel: i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x1912_rid_0x06.golden_hw_state failed with error -2 kernel: i915 0000:00:02.0: MDEV: Registered

I am ruinning Arch Linux with the latest kernel-4.13.3 on Intel Core i5 6500 (HD Graphics 530, 8086:1912). Tried it on 4.12.13, problem remained the same.

Kernel command line: kvm-intel.nested=1 intel_iommu=on i915.enable_gvt=1
Modules included in initramfs: btrfs kvmgt vfio vfio_iommu_type1 vfio_pci vfio_virqfd vfio_mdev i915

Also I am unable to create i915-GVTg_V5_4 device with

error: uuidgen: write error: No space left on device

but i915-GVTg_V5_8 creates fine.
Created device is not working for me in Qemu 2.10:

  1. The VM screen remains blank with Tianocore
  2. OS won't boot with BIOS-tried Manjaro Linux and Ubuntu 17.10

Install Instructions Nonfunctional

I have tried literally for years, many times to get KVMGT working, but have never succeeded. I run CentOS 7.4 as host and most guests. I've run Linux exclusively for 22 years, and work in enterprise infosec, so I don't think the problem is me.

Today I followed the instructions here:
https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide

I didn't compile KVM from scratch, I installed from the repo. I did install the elrepo kernel-ml-nosrc and the matching source from kernel.org. (4.14.14) It was necessary to compile the kernel as elrepo's kernel-ml config does not have the proper drivers turned on.

So I turned on all CONFIG_VFIO_* options, CONFIG_DRM_I915_GVT, and CONFIG_DRM_I915_GVT_KVMGT, compiled, installed, and booted the kernel.

There is nothing in the instructions about needing to load the drivers at boot, but I set them in Dracut anyway. They were in ininitramfs, but they didn't survive the boot to be loaded in the running system for some reason. Then I entered those same modules in /etc/modules.conf.d/vfio.conf:
irqbypass
vfio
vfio_iommu_type1
vfio_virqfd
vfio-pci
mdev
vfio-mdev
kvmgt

... and they do load after boot. But there is no /sys/class/mdev_bus directory! What is wrong with this picture? Clearly I can't go any further without this.

In BIOS I have Virtualization on, and VTd on. The mobo is a new Asus Prime Z270M Plus, with the latest BIOS installed (v 102). CPU is an Intel Xeon Core i7-6700T CPU @ 2.80GHz.

Also BTW, I can not get SR-IOV working on this mobo, whereas I could when I used the Intel 4-port ethernet card in a SuperMicro mobo.

Attached is the lshw and lspci -k

lshw.tar.gz
lspci-k.tar.gz

[Question] Procedure of setting up an intel nuc (kaby lake) with xen-server

Hello,
I just started using my nuc as low cost and efficient vm host and stumpled over the feature gvt-g. I read your wiki, but I couldn't wrap my head around, how to use it with xenserver.

So far I installed the free xen-server image, created some vms, etc ...

I followed the wiki and compiled xengt withing in a fresh ubuntu 16.04.4 or should I do this in the xenserver distro?

I am a little confused right now and it would be great if someone could resolve my issue 👍
Thank you very much.
BTW great work!!!

Greetings, Thomas

[Success #2] Android Oreo guest works with GVT-g + Dmabuf!

I was wrong about believing the guest needed Xserver. I am able to get Android to work with Intel GPU passthrough technology! Sound works too! This is extremely exciting and awesome.

Now we can play games like Candy Crush, Angry Birds, and Sausage Run in full GPU hardware accelerated glory on Linux PCs. 👍 :D

For proper Android mouse control within QEMU, you'll probably want to connect a second USB wired or wireless mouse to your computer then pass one of them with it's associated USB Bus and Device ID numbers into QEMU, so that the Android guest sees it.

See the screenshots below:


qemu process defunct immediately after starting VM

I'm on Arch, libvirt 4.6.0, QEMU 2.12.1, Linux 4.17.18, CPU i5-5300U, kvmgt module is loaded and i915 module is loaded with enable_gvt=1 option. Guest is Windows 7, using q35 and OVMF.
Creating mdev device seems to be working fine:

$ ls -l /sys/class/mdev_bus/0000\:00\:02.0/741be43f-601a-456e-94ef-9547e713f3e2/
total 0
lrwxrwxrwx 1 root root    0 Aug 22 11:01 driver -> ../../../../bus/mdev/drivers/vfio_mdev
drwxr-xr-x 2 root root    0 Aug 22 14:53 intel_vgpu
lrwxrwxrwx 1 root root    0 Aug 22 12:10 iommu_group -> ../../../../kernel/iommu_groups/0
lrwxrwxrwx 1 root root    0 Aug 22 12:10 mdev_type -> ../mdev_supported_types/i915-GVTg_V4_4
drwxr-xr-x 2 root root    0 Aug 22 14:53 power
--w------- 1 root root 4096 Aug 22 14:53 remove
lrwxrwxrwx 1 root root    0 Aug 22 11:01 subsystem -> ../../../../bus/mdev
-rw-r--r-- 1 root root 4096 Aug 22 11:01 uevent

Relevant bits from VM .xml definition:

    <graphics type='spice'>
      <listen type='none'/>
      <clipboard copypaste='yes'/>
      <filetransfer enable='yes'/>
      <gl enable='yes'/>
    </graphics>
    <video>
      <model type='none'/>
    </video>
    <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'>
      <source>
        <address uuid='741be43f-601a-456e-94ef-9547e713f3e2'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
    </hostdev>

Immediately after issuing virsh start vm qemu process goes defunct:

$ ps -efc |grep qemu
username  3439     1 TS   19 14:47 ?        00:00:00 [qemu-system-x86] <defunct>

And it hangs indefinitely (well, I tried like 15 minutes). The only way to kill it is to issue virsh destroy vm, I tried adding <graphics type='egl-headless'/> element - doesn't help.
Please point out if my configuration is wrong or how should I research this further.

drm:intel_vgpu_emulate_mmio_write hit error -22 on Ubuntu Qemu

I am loading Qemu on gvt linux with latest kernel, and it hit error on any mouse and keyboard stroke.
linux@linux-gvtg:/boot$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.12.0+ root=UUID=28928046-c655-425a-bd2d-c755d7c6283a ro quiet splash vt.handoff=7 i915.enable_gvt=1 kvm.ignore_msrs=0 intel_iommu=igfx_off drm.debug=0
and dmesg fails with below error:
[1484697.705735] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69f7, var 0x0, len 1
[1484697.705746] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69f8, var 0x0, len 1
[1484697.705757] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69f9, var 0x0, len 1
[1484697.705768] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69fa, var 0x0, len 1
[1484697.705779] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69fb, var 0x0, len 1
[1484697.705790] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69fc, var 0x0, len 1
[1484697.705802] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69fd, var 0x0, len 1
[1484697.705813] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69fe, var 0x0, len 1
[1484697.705824] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b69ff, var 0x0, len 1
[1484697.705835] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a00, var 0x0, len 1
[1484697.705846] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a01, var 0x0, len 1
[1484697.705857] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a02, var 0x0, len 1
[1484697.705868] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a03, var 0x0, len 1
[1484697.705879] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a04, var 0x0, len 1
[1484697.705890] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a05, var 0x0, len 1
[1484697.705901] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a06, var 0x0, len 1
[1484697.705912] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a07, var 0x0, len 1
[1484697.705923] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a08, var 0x0, len 1
[1484697.705934] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: guest page write error -22, gfn 0x753b6, pa 0x753b6a09, var 0x0, len 1

DmaBuf not working on 16.04.3 with latest 4.14-stable kernel

Have compiled the latest 4.14-stable cloned from here with the relevant i915 KVMGT driver bits set to "y" and I have a Broadwell GPU (MacBookAir6,2 a.k.a "Early 2015") that works with vgpu (if headless, it works fine, I mean.) however using kvmgt-dmabuf-example to show the guest's framebuffer does not work (no display output unless I specifically add another vga device like -vga qxl.) I also noticed that some firmware load failed in the syslog, which could be the cause of the problem:

$ dmesg | grep -i i915
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.14.0-newperson1746-test2-generic root=UUID=e5561bd9-6268-4883-83e5-aa521d59814b ro --verbose i915.enable_gvt=1 kvm.ignore_msrs=0 intel_iommu=igfx_off vt.handoff=7
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.14.0-newperson1746-test2-generic root=UUID=e5561bd9-6268-4883-83e5-aa521d59814b ro --verbose i915.enable_gvt=1 kvm.ignore_msrs=0 intel_iommu=igfx_off vt.handoff=7
[    1.874932] i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x1626_rid_0x09.golden_hw_state failed with error -2
[    1.886786] i915 0000:00:02.0: MDEV: Registered
[    1.886852] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    1.902343] [drm] Initialized i915 1.6.0 20170818 for 0000:00:02.0 on minor 0
[    4.469475] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    6.776064] snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

From qemu:

$ qemu-system-x86_64 ... {long options}
qemu-system-x86_64: -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/20d78d8d-d2f1-416f-b49a-fc9a58171df0: vfio: get dmabuf mgr fd failed:-1

egl extensions found. Intel GVT-g indirect display will be enabled
Use dma-buf to get guest framebuffer

I am trying gvt-staging now, however that branch is older by 3 days and therefore my hopes aren't high.

Q35 Support?

Is GVT-g expected to work with the Q35 machine type? All current documentation refers only to the older i440fx machine type.

Kaby lake vgpu not support for WIN7 ?

Hi:
gvt-linux branch: gvt-stable-4.14,
igvtg-qemu branch: stable-2.10.0
Hardware : Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz
I create a vgpu for my win7 VM, but I can't install display driver for this vgpu, there is message in log file:

  [INF Info]
    INF = C:\Users\test\Downloads\win64_154519.4678\Graphics\igdlh64.inf
*   Section <PackageInfo> Key <Sequence> not found in INF
    Date = 05/17/2017
    Version = 21.20.16.4678
    ClassGUID = {4D36E968-E325-11CE-BFC1-08002BE10318}
    PackageInfo.Name = Graphics
    PackageInfo.Sequence = 0
    Manufacturer = IntelGfx,NTamd64.6.1,NTamd64.6.2,NTamd64.6.3,NTamd64.10.0,NTamd64.10.0...14393
    Resolved Manufacturer = IntelGfx.NTamd64.6.1
    Inf supports 64 bit.
    Description: Intel(R) HD Graphics 510
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1906
    Description: Intel(R) HD Graphics 520
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1916
    Description: Intel(R) HD Graphics 515
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_191E
    Description: Intel(R) HD Graphics 530
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1912
    Description: Intel(R) HD Graphics 520
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1921
    Description: Intel(R) Iris(TM) Graphics 540
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1926
    Description: Intel(R) HD Graphics 535
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1923
    Description: Intel(R) Iris(TM) Graphics 550
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1927
    Description: Intel(R) HD Graphics 510
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_1902
    Description: Intel(R) HD Graphics 510
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_190B
    Description: Intel(R) Iris(TM) Pro Graphics 580
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_193B
    Description: Intel(R) Iris(TM) Graphics 555
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_192B
    Description: Intel(R) HD Graphics 530
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_191B
    Description: Intel(R) Iris(TM) Graphics P555
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_192D
    Description: Intel(R) Iris(TM) Pro Graphics P580
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_193A
    Description: Intel(R) HD Graphics P530
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_191D
    Description: Intel(R) Iris(TM) Pro Graphics P580
    HardwareID = iSKLD_w7,PCI\VEN_8086&DEV_193D
  Removed C:\Users\test\Downloads\win64_154519.4678\DisplayAudio\10.22\IntcDAud.inf
  Removed C:\Users\test\Downloads\win64_154519.4678\DisplayAudio\6.16\IntcDAud.inf
  Removed C:\Users\test\Downloads\win64_154519.4678\Graphics\igdlh64.inf
  Checking 4 part DID's
  4ID check OK
!   Didn't find any INF's that match active hardware
IIF will NOT initiate reboot
Exit code = 0xA005
ResultCode = 40965

Pentium support

The Pentium G4600/G4620 have HD 630 as integrated GPU and it is also featured in Kaby Lake Core series. Does this mean that GVT-g can be used on G4600/G4620?

Doesn't work on ubuntu 17.04. firmware doesn't load.

Processor: i3-6006u/HD 520 iGPU.
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-37-generic.efi.signed root=UUID=--- ro i915.enable_gvt=1 kvm.ignore_msrs=1 intel_iommu=igfx_off drm.debug=0
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-37-generic.efi.signed root=UUID=--- ro i915.enable_gvt=1 kvm.ignore_msrs=1 intel_iommu=igfx_off drm.debug=0
[ 1.935020] i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x1916_rid_0x0007.golden_hw_state failed with error -2
[ 122.559509] [drm:intel_vgpu_create [kvmgt]] ERROR gvt: failed to create intel vgpu: -28
[ 124.670334] [drm:intel_vgpu_create [kvmgt]] ERROR gvt: failed to create intel vgpu: -28
[ 133.533074] [drm:intel_vgpu_create [kvmgt]] ERROR gvt: failed to create intel vgpu: -28
[ 301.405430] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 0 len 1 val 0
[ 350.323526] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO d40(4B) val ffeff0f1
[ 350.323569] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO d48(4B) val ffeff0f1
[ 350.831073] WARNING: CPU: 1 PID: 1812 at /build/linux-d6ZFKv/linux-4.10.0/drivers/gpu/drm/i915/gvt/gtt.c:1818 intel_vgpu_emulate_gtt_mmio_write+0x1cb/0x240 [i915]
[ 359.351766] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 24e0 len 4 val 4de0
[ 359.351809] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 24e4 len 4 val 4de4
[ 359.351848] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 24e8 len 4 val 2248
[ 359.353215] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 2120(4B) val ffeff0f1
[ 359.353256] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 2124(4B) val ffeff0f1
[ 359.353452] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO fdc(4B) val ff5fbbe9
[ 359.353482] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO fdc len 4 val ff5fbbe9
[ 359.353655] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 20d4(4B) val ffeff0f1
[ 359.353684] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 20d4 len 4 val ffeff0f5
[ 359.361589] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 22040(4B) val 0
[ 359.367828] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 4448c(4B) val 0
[ 359.367864] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 4448c len 4 val 6
[ 359.367903] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 44484(4B) val 0
[ 359.367933] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 44484 len 4 val 0
[ 359.367963] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 4448c(4B) val 6
[ 359.367992] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 4448c len 4 val 66
[ 359.368021] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 44484(4B) val 0
[ 359.368049] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 44484 len 4 val 0
[ 359.368078] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 4448c(4B) val 66
[ 359.368138] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 4448c len 4 val 666
[ 359.368166] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 44484(4B) val 0
[ 359.368237] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 44484 len 4 val 0
[ 433.701764] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 0 len 1 val 0
[ 508.112245] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 0 len 1 val 0
[ 524.070266] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO d40(4B) val ffeff0f1
[ 524.070309] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO d48(4B) val ffeff0f1
[ 531.857172] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 24e0 len 4 val 4de0
[ 531.857216] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 24e4 len 4 val 4de4
[ 531.857255] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 24e8 len 4 val 2248
[ 531.857942] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 2120(4B) val ffeff0f1
[ 531.857982] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 2124(4B) val ffeff0f1
[ 531.858209] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO fdc(4B) val ff5fbbe9
[ 531.858239] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO fdc len 4 val ff5fbbe9
[ 531.858412] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 20d4(4B) val ffeff0f1
[ 531.858440] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 20d4 len 4 val ffeff0f5
[ 531.865506] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 22040(4B) val 0
[ 531.871164] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 4448c(4B) val 0
[ 531.871200] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 4448c len 4 val 6
[ 531.871239] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 44484(4B) val 0
[ 531.871270] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 44484 len 4 val 0
[ 531.871301] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 4448c(4B) val 6
[ 531.871331] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 4448c len 4 val 66
[ 531.871360] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 44484(4B) val 0
[ 531.871390] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 44484 len 4 val 0
[ 531.871419] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 4448c(4B) val 66
[ 531.871448] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 4448c len 4 val 666
[ 531.871477] [drm:intel_vgpu_emulate_mmio_read [i915]] ERROR gvt: vgpu1: read untracked MMIO 44484(4B) val 0
[ 531.871506] [drm:intel_vgpu_emulate_mmio_write [i915]] ERROR gvt: vgpu1: write untracked MMIO 44484 len 4 val 0

doesn't work on Ubuntu 16.04 (KVT) with Windows 10 guest

I followed the full GVTg Setup Guide.
Setup:

  • Ubuntu 16.04.2 LTS 64bit as a host
    • kernel 4.14.15+ compiled according to the guide
    • kernel flags i915.enable_gvt=1 kvm.ignore_msrs=1
  • Windows 10 64bit as a guest
  • Lenovo T480 laptop (i7-8550U)
  • KVMGT
  • the latest Intel graphics drivers 24.20.100.6136
    I can't install the referred drivers for Kaby Lake (15.45.23.4860), as the installer informs that I don't meet the minimum system requirements. Probably because drivers target Windows 8.1 and Windows 7. Thus I installed the latest one for Windows 10 (24.20.100.6136).

During boot, the system gives BSOD (System Service Exception in igdkmd64.sys) :
bsod

Coffee Lake support

Hi,

Can you clarify if Coffee Lake processors are supported and if it is, which kernel version already have it upstream (ubuntu), or do we need to compile one ourselves if we're using one of 4.13.x.

Thanks and regards!

dma-buf display output not working for Windows 10 guest

I installed Windows 10 guest (RS4 v1803) with the 2018-q3 release for kvmgt using instructions from https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide however the dma-buf display output is not working. I successfully installed the 25.20.100.6326 graphics drivers and I am able to access the display using TightVNC remote protocol installed on guest. I can confirm that all graphics functionality besides the dma-buf output is working (video decode, changing resolution etc.).

I have tested using the stable 2018-q3 release, gvt-next-fixes-2018-10-23 and the stable 4.18.16 kernel with both "i915-GVTg_V5_4" and "i915-GVTg_V5_8" in mdev_supported_types however all of them do not show output for windows guest. Due to graphics memory limitation on host I do not have V5_1 and V5_2 to test.

I can confirm that dma-buf output works with Linux guests (Fedora 29, Ubuntu 18.04).

Information from host system:

dmesg | grep i915

[    0.847757] calling  i915_init+0x0/0x48 @ 1
[    0.850658] i915 0000:00:02.0: Direct firmware load for 
i915/gvt/vid_0x8086_did_0x5917_rid_0x07.golden_hw_state failed with error -2
[    0.869464] i915 0000:00:02.0: MDEV: Registered
[    0.870835] i915 0000:00:02.0: vgaarb: changed VGA decodes: 
olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    0.871362] i915 0000:00:02.0: Direct firmware load for i915/kbl_dmc_ver1_04.bin failed with error -2
[    0.871896] i915 0000:00:02.0: Failed to load DMC firmware i915/kbl_dmc_ver1_04.bin. Disabling 
runtime power management.
[    0.872462] i915 0000:00:02.0: DMC firmware homepage: 
https://01.org/linuxgraphics/downloads/firmware
[    0.881103] [drm] Initialized i915 1.6.0 20180308 for 0000:00:02.0 on minor 0
[    0.883512] initcall i915_init+0x0/0x48 returned 0 after 34914 usecs
[    2.180034] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    9.691899] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops)

lspci -vv -s 0:02.0

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07) (prog-if 00 [VGA 
controller])
Subsystem: Lenovo Device 3802
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- 
FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- 
<PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 125
Region 0: Memory at 2ffa000000 (64-bit, non-prefetchable) [size=16M]
Region 2: Memory at 2fa0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 3000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]

Fedora 29 Guest:

screenshot from 2018-10-26 09-52-11

Windows 10 Guest over TightVNC:

screenshot from 2018-10-26 09-31-01

Additional information:

I am using Clear Linux on i7-8550u (Kaby Lake R platform) with UHD 620 graphics. GNOME reports UHD 620 as Kabylake GT2 graphics:

screenshot from 2018-10-26 10-04-07

Windows 10 guest driver is capable of setting resolution up to 5120x2880 even though "i915-GVTg_V5_4" should only support up to 1920x1200. On Fedora guest the maximum is 1920x1200 as per the "i915-GVTg_V5_4" description.

In Windows 10 guest the device manager reports that:

Device PCI\VEN_8086&DEV_5917&SUBSYS_380217AA&REV_07\3&13c0b0c5&0&10 requires
further installation.

This matches with the line from host dmesg output:

[ 0.850658] i915 0000:00:02.0: Direct firmware load for
i915/gvt/vid_0x8086_did_0x5917_rid_0x07.golden_hw_state failed with error -2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.