[vfio-users] Question about IGD Passthrough

YounJae Rho luxflow at live.com
Tue Jun 21 10:14:57 UTC 2016


I already compiled both upstream qemu (http://git.qemu.org/ 2016-06-17) and seabios (http://git.qemu.org/seabios.git 2016-06-03 <http://git.qemu.org/seabios.git%202016-06-03> )

 

After disable intel graphic driver at safe mode in windows 10 guest

I can boot windows normally, but whenever I re-enable intel graphic driver. It crashes

I analyzed windows crash log with windbg. And I found that error SYSTEM_THREAD_EXCEPTION_NOT_HANDLED  is occurred when igdkmd64.sys execute instruction `rdmsr` to read MSR_TURBO_RATIO_LIMIT(0x1ad) which is not handled in qemu

(host dmesg says  vcpu6, guest rIP: 0xfffff80137691453 unhandled rdmsr: 0x1ad)

Since Ubuntu guest successfully booted. I suspect windows 10 intel graphic driver

I already update latest intel graphic driver from intel web site    (version 20.19.15.4463)

 

Do you have any idea about it? Or can you let me know what’s your test environment (intel graphic driver version, qemu version, seabios version.. etc)

Sorry for bothering agian

 

From: Alex Williamson [mailto:alex.l.williamson at gmail.com] 
Sent: Tuesday, June 21, 2016 2:12 AM
To: YounJae Rho <luxflow at live.com>
Cc: vfio-users <vfio-users at redhat.com>
Subject: Re: [vfio-users] Question about IGD Passthrough

 

 

 

On Mon, Jun 20, 2016 at 10:44 AM, YounJae Rho <luxflow at live.com <mailto:luxflow at live.com> > wrote:

Hi!
I applied alex's IGD(Intel graphic display) passthrough patch recently.
First of all, thanks alex for your hard works!

 

Welcome :)  But you should really be using qemu.git + seabios.git, and eventually just qemu.git once pc-bios is updated.

 

It seems to work perfectly in Ubuntu 16.04 but problem is windows 10.
On windows 10, all mode except safe booting doesn't boot and keep rebooting
Law graphic mode also keep rebooting.
First question is
Is there anyone that have succeed in booting windows 10?

 

Yep, me. 

 

Second question is
What is the difference between Gerd
patch(https://www.redhat.com/archives/vfio-users/2016-January/msg00035.html)
and alex patch?
Currently I applied only alex's IGD patch but do I have to applied Gerd
patch also?

 

As above, use upstream.

 

Third question is
Is there no way to test UPT mode in haswell based processor?

 

Nope, according to Intel UPT needs Broadwell or newer.  You can try, but it depends on the guest drivers, which I have no control over.

 

I tested UPT mode on both windows and linux, but both said `no vga output`

 

Minimally you'll need to use the x-igd-opregion=on to get display output in UPT mode, but remember UPT is meant to be secondary graphics in the VM only.

 

I know documentation says UPT mode only is supported in Broadwell and later
process
But when I boot from live cd of Igvt-g
proje)ct(https://01.org/igvt-g/blogs/czhou/2016/intel-gvt-g-iso-public-releas <https://01.org/igvt-g/blogs/czhou/2016/intel-gvt-g-iso-public-release-q12016> 

e-q12016 <https://01.org/igvt-g/blogs/czhou/2016/intel-gvt-g-iso-public-release-q12016> , it works.
I don't know exactly but as I know Igvt-g and UPT uses same mechanism isn't
it?

 

No.  GVT-g is a mediated virtualization for IGD that allows multiple VMs to make use of a single IGD through hypervisor level virtualization.  We're working with Intel and others on this as well, but it is not the same thing as UPT.  UPT is simply GVT-d (ie. direct assignment... I can never remember which is which in Intel lingo), where IGD doesn't have all the system requirements that it usually does.  IOW, it's what assignment of IGD should have always been if the chipset designers hadn't freely spread IGD components thoughout the chipset.

 

Forgive me if I ask silly question or my bad English skill annoy you
Thanks in advance.

My test environment is
Kernel : linux 4.6.0 (almost vanilla kernel, but some code are patched for
Ubuntu)
QEMU : QEMU emulator version 2.6.50 (v2.6.0-1190-g482b618-dirty)
Seabios : up to commit `splash: Skip the RGB555 mode`
CPU : Intel E3-1265L V3 (haswell based E3 xeon)
QEMU parameter :
#legacy mode
qemu-system-x86_64 -cpu host -m 4096  -realtime mlock=on -smp
4,sockets=1,cores=2,threads=2 \
-machine pc,accel=kvm,usb=off,mem-merge=off \
-nographic -no-user-config -nodefaults \
-device vfio-pci,host=00:02.0,id=hostdev0,bus=pci.0,addr=0x2 \
-hda /mnt/VMs/windows.qcow2 \
-net nic,model=virtio,addr=0x04 -net user \
-device vfio-pci,host=00:14.0,id=hostdev1,bus=pci.0,addr=0x14 \
-device ich9-usb-uhci3,id=uhci \
-device usb-ehci,id=ehci \
-device nec-usb-xhci,id=xhci \

 

Make sure you're not getting a default emulated VGA device, -vga none should do that if -nodefaults doesn't already.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160621/bb82f986/attachment.htm>


More information about the vfio-users mailing list