[vfio-users] win10 & system thread exception

Torbjorn Jansson torbjorn.jansson at mbox200.swipnet.se
Sun May 15 11:28:37 UTC 2016


On 2016-05-15 12:56, Okky Hendriansyah wrote:
> On Sun, May 15, 2016 at 5:43 PM, Torbjorn Jansson <
> torbjorn.jansson at mbox200.swipnet.se> wrote:
>
>> Hello all.
>>
>
> Hi Torbjorn,
>
> got a few questions regarding win10, gpu passthru and the config of the vm,
>> but first thing first.
>>
>> my first attempts at passing thru my old gtx570 only worked once and
>> second boot always resulted in a hardlock of host.
>>
>> now i have replaced it with a gtx970 and things work much better.
>> my host is running fedora 22 so it only have qemu 2.3.1.
>> this means i have to use the old style libvirt settings of hiding kvm and
>> so on to get the nvidia drivers working.
>>
>
> So first things first, care to elaborate on your host specs? I assume that
> you were doing the UEFI/OVMF approach on passing through the GPU?
>

host cpu is: i5-3470
mb is Asus P8Z77-V LE Plus
and yes im using uefi/ovmf to pass thru the gpu.

for this vm im also passing thru a physical network card (a 4 port intel 
server card)

>> this works just fine, so my next step was to see if i can get a newer
>> version of qemu and use the hv_vendor_id workaround instead.
>> checked out the stable-2.5 branch from git and compiled it and setup the
>> wrapper scrips as documented in previous mails on this list and then edited
>> the libvirt xml file to point to the right wrapper script.
>>
>> vm booted just fine but at this stage i still have the old hyperv and kvm
>> settings turned off.
>> since hv_vendor_id is supposed to make that not needed i tried to turn
>> them back on again and as soon as i did win10 crashes at boot with system
>> thread exception.
>> it doesnt matter which one i turn back on again, just one is enough to
>> cause a crash.
>> i tried each one in order to see if i could find the one causing it, but
>> any single option of those is enough to cause the crash.
>>
>> i suspect this crash only happens when hv_vendor_id is specified.
>>
>
> Please share your libvirt XML and your runtime QEMU command line (ps -ef |
> grep qemu) when the guest runs.
>

qemu command from the version that boots (old style nvidia workaround)
/usr/local/bin/qemu-system-x86_64 -machine accel=kvm -name win10 -S 
-machine pc-i440fx-2.3,accel=kvm,usb=off -cpu core2duo,kvm=off -drive 
file=/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd,if=pflash,format=raw,unit=0,readonly=on 
-drive 
file=/var/lib/libvirt/qemu/nvram/win10_VARS.fd,if=pflash,format=raw,unit=1 
-m 4096 -realtime mlock=off -smp 2,sockets=1,cores=2,threads=1 -uuid 
098e9157-b878-4882-9c7a-22bd334920c1 -nographic -no-user-config 
-nodefaults -chardev 
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win10.monitor,server,nowait 
-mon chardev=charmonitor,id=monitor,mode=control -rtc 
base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=discard 
-no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global 
PIIX4_PM.disable_s4=1 -boot strict=on -device 
ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device 
ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 
-device 
ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 
-device 
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -drive 
file=/mnt/store/virt/vms/Win10.qcow2,if=none,id=drive-virtio-disk0,format=qcow2 
-device 
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 
-drive 
file=/mnt/store/virt/isos/virtio-win-0.1.117.iso,if=none,id=drive-ide0-0-1,readonly=on,format=raw 
-device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev 
tap,fd=24,id=hostnet0,vhost=on,vhostfd=27 -device 
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:12:48:26,bus=pci.0,addr=0x3 
-device usb-host,hostbus=5,hostaddr=6,id=hostdev0 -device 
vfio-pci,host=05:00.0,id=hostdev1,bus=pci.0,addr=0x2 -device 
vfio-pci,host=05:00.1,id=hostdev2,bus=pci.0,addr=0x4 -device 
vfio-pci,host=03:00.0,id=hostdev3,bus=pci.0,addr=0x5 -device 
vfio-pci,host=03:00.1,id=hostdev4,bus=pci.0,addr=0x9 -device 
vfio-pci,host=04:00.0,id=hostdev5,bus=pci.0,addr=0xa -device 
vfio-pci,host=04:00.1,id=hostdev6,bus=pci.0,addr=0xb -device 
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on

and the libvirt xml file is attached.
changing any one of the hyperv, kvm or hypervclock back to normal 
results in win10 crashing at boot.



>> any advice on how to get win10 to boot without system thread exception with
>> hv_vendor_id specified and the hyperv and kvm options turned on?
>> i read something about x2apic but i don't fully understand what to do.
>>
>> i also tried to change cpu model to core2duo with no success.
>> do we know what driver is causing the system thread exception?
>> anyone analyzed the crashdump via a debugger?
>
>
> What are your VirtIO driver version that you used for the boot drive? Some
> version crashes or make the guest slow.
>

im using the ones from: virtio-win-0.1.117.iso
had an older version earlier but upgraded by going to device manager and 
then update drivers and point to the contents of the is on all devices 
related to virtio (storage, network, baloon and so on)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: win10.xml
Type: text/xml
Size: 5108 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160515/0d587036/attachment.xml>


More information about the vfio-users mailing list