[vfio-users] BSOD when installing drivers for R9 290
Eddie Yen
missile0407 at gmail.com
Thu Feb 25 07:52:40 UTC 2016
For me, I usually delete this line in <device> tags
* <address type='pci' domain='0x0000' bus='0x00' slot='0x08'
function='0x0'/>*
Don't delete the <address> tag inside the <source>.
I usually delete this line, this line means the virtual address that
pass-throughed device will set in VM.
And it will not get error if you save XML file, it will generate
automatically while VM started.
So that u don't have to worry about virtual address conflicts.
2016-02-23 4:58 GMT+08:00 Eric Griffith <egriffith92 at gmail.com>:
>
> On Thu, Jan 28, 2016 at 8:47 PM, Stewart Adam <maillist at diffingo.com>
> wrote:
>
>> On 2016-01-21 12:32 PM, Eric Griffith wrote:
>>
>>>
>>> On Jan 17, 2016 16:10, "Stewart Adam" <maillist at diffingo.com
>>> <mailto:maillist at diffingo.com>> wrote:
>>> >
>>> > On 2016-01-17 1:27 PM, Eric Griffith wrote:
>>> >>
>>> >> On Jan 17, 2016 13:15, "Stewart Adam" <maillist at diffingo.com
>>> <mailto:maillist at diffingo.com>
>>> >> <mailto:maillist at diffingo.com <mailto:maillist at diffingo.com>>>
>>> wrote:
>>> >> >
>>> >> > On 2016-01-07 11:30 AM, Eric Griffith wrote:
>>> >> >>
>>> >> >> My problem is.. The Win7 (and Win8.1) guests are perfectly fine
>>> and
>>> stable
>>> >> >> until I try to install the amd crimson drivers. Then Windows
>>> BSODs,
>>> yelling
>>> >> >> about an unhandled exception. If I unpack the install and
>>> install things
>>> >> >> piecemeal, then I can install the HDMI audio driver, and
>>> everything else
>>> >> >> okay...except for the display driver. Installing the display
>>> driver
>>> causes
>>> >> >> the BSOD.
>>> >> >
>>> >> > How are you booting the guest (e.g. manually executing QEMU, or
>>> manually
>>> >> created libvirt XML or virt-manager+libvirt)?
>>> >> >
>>> >>
>>> >> Virt-manager+libvirt
>>> >>
>>> >> > I had a very similar symptom on my guest, in the end it was the
>>> guest's
>>> >> machine flag "vmport=off" that virt-manager had added that resulted
>>> in the
>>> >> hang/BSOD upon installation of the driver.
>>> >>
>>> >> I tried removing the vmport=off flag but still BSOD'ed :(
>>> >>
>>> >> > After attempting a driver install, does the guest boot correctly
>>> but hang
>>> >> when attempting to show the login screen (i.e. when the 3D driver
>>> initializes)?
>>> >>
>>> >> Sometimes yes, other times itd just do the boot as if I had never
>>> tried to
>>> >> install the driver.
>>> >
>>> >
>>> > Sounds like the same issue I was experiencing... Have you also added a
>>> ioh3420 device edited your configuration so that the GPU is attached to
>>> it
>>> instead the default PCI/PCIE buses? If you're not sure, please attach the
>>> output of "virsh dumpxml your-vm-name".
>>>
>>> I did not do that, I just passed through the card and the card's audio.
>>> Are
>>> there any available instructions on how to do so?
>>>
>>> Also I appreciate the pointer, Stewart :)
>>>
>> Sorry for the delay - here are those instructions:
>>
>> You'll want to execute 'virsh edit domname' as root to edit your domain's
>> config file, and then add this XML after the 'pci-bridge' controller block:
>>
>> <controller type='pci' index='3' model='pcie-root-port'>
>> <model name='ioh3420'/>
>> <target chassis='1' port='0x1'/>
>> <alias name='pci.3'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x1c'
>> function='0x0' multifunction='on'/>
>> </controller>
>>
>> Then scroll down to the <hostdev> block for your GPU, and alter it to use
>> the controller (bus 3) we just created:
>>
>> <hostdev mode='subsystem' type='pci' managed='yes'>
>> <driver name='vfio'/>
>> <source>
>> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
>> </source>
>> <alias name='hostdev0'/>
>> <address type='pci' domain='0x0000' bus='0x03' slot='0x00'
>> function='0x0' multifunction='on'/>
>> </hostdev>
>>
>> Regards,
>> Stewart
>>
>
> Hey Stewart, long time no talk. Sorry about the delaying in getting back
> to you on this topic, classes really kicking into high gear and life became
> kind of crazy.
>
> Copy pasted below is the dumpxml of my Win8.1 VM. I tried to add in the
> two code blocks that you linked above, but I got errors when I did so. I've
> bolded and marked in red where I added the first code block, the pci
> definition, and then did the same for the two devices that make up my GPU.
>
> Edit: just incase anyone's mail client doesn't like the bold / text color
> change, I've also off-set the area by adding a blank line.
>
> XML WALL OF TEXT:
>
> <domain type='kvm'>
> <name>win8.1</name>
> <uuid>(UUID)</uuid>
> <memory unit='KiB'>4194304</memory>
> <currentMemory unit='KiB'>4194304</currentMemory>
> <vcpu placement='static'>2</vcpu>
> <os>
> <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type>
> <loader readonly='yes'
> type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
> <nvram>/var/lib/libvirt/qemu/nvram/win8.1_VARS.fd</nvram>
> </os>
> <features>
> <acpi/>
> <apic/>
> <hyperv>
> <relaxed state='on'/>
> <vapic state='on'/>
> <spinlocks state='on' retries='8191'/>
> </hyperv>
> </features>
> <cpu mode='custom' match='exact'>
> <model fallback='allow'>core2duo</model>
> </cpu>
> <clock offset='localtime'>
> <timer name='rtc' tickpolicy='catchup'/>
> <timer name='pit' tickpolicy='delay'/>
> <timer name='hpet' present='no'/>
> <timer name='hypervclock' present='yes'/>
> </clock>
> <on_poweroff>destroy</on_poweroff>
> <on_reboot>restart</on_reboot>
> <on_crash>restart</on_crash>
> <pm>
> <suspend-to-mem enabled='no'/>
> <suspend-to-disk enabled='no'/>
> </pm>
> <devices>
> <emulator>/usr/bin/qemu-kvm</emulator>
> <disk type='file' device='cdrom'>
> <driver name='qemu' type='raw'/>
> <source file='/usr/share/virtio-win/virtio-win-0.1.102.iso'/>
> <target dev='sda' bus='sata'/>
> <readonly/>
> <boot order='3'/>
> <address type='drive' controller='0' bus='0' target='0' unit='0'/>
> </disk>
> <disk type='file' device='disk'>
> <driver name='qemu' type='qcow2'/>
> <source file='/var/lib/libvirt/images/win8.1.qcow2'/>
> <target dev='sdb' bus='sata'/>
> <boot order='1'/>
> <address type='drive' controller='0' bus='0' target='0' unit='1'/>
> </disk>
> <disk type='file' device='cdrom'>
> <driver name='qemu' type='raw'/>
> <source file='/var/lib/libvirt/images/Win8.1_English_x64.iso'/>
> <target dev='sdc' bus='sata'/>
> <readonly/>
> <boot order='2'/>
> <address type='drive' controller='0' bus='0' target='0' unit='2'/>
> </disk>
> <controller type='usb' index='0' model='ich9-ehci1'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
> function='0x7'/>
> </controller>
> <controller type='usb' index='0' model='ich9-uhci1'>
> <master startport='0'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
> function='0x0' multifunction='on'/>
> </controller>
> <controller type='usb' index='0' model='ich9-uhci2'>
> <master startport='2'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
> function='0x1'/>
> </controller>
> <controller type='usb' index='0' model='ich9-uhci3'>
> <master startport='4'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
> function='0x2'/>
> </controller>
>
> *<!-- ADDED PCI BLOCK HERE -->*
>
> <controller type='pci' index='0' model='pci-root'/>
> <controller type='sata' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
> function='0x0'/>
> </controller>
> <controller type='virtio-serial' index='0'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
> function='0x0'/>
> </controller>
> <interface type='network'>
> <mac address='52:54:00:7d:c6:85'/>
> <source network='default'/>
> <model type='virtio'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
> function='0x0'/>
> </interface>
> <serial type='pty'>
> <target port='0'/>
> </serial>
> <console type='pty'>
> <target type='serial' port='0'/>
> </console>
> <channel type='spicevmc'>
> <target type='virtio' name='com.redhat.spice.0'/>
> <address type='virtio-serial' controller='0' bus='0' port='1'/>
> </channel>
> <input type='tablet' bus='usb'/>
> <sound model='ich9'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
> function='0x0'/>
> </sound>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *<hostdev mode='subsystem' type='pci' managed='yes'> <source>
> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x07'
> function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci'
> managed='yes'> <source> <address domain='0x0000' bus='0x01'
> slot='0x00' function='0x1'/> </source> <address type='pci'
> domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev>*
> <hostdev mode='subsystem' type='usb' managed='yes'>
> <source>
> <vendor id='0x24f0'/>
> <product id='0x0140'/>
> </source>
> </hostdev>
> <hostdev mode='subsystem' type='usb' managed='yes'>
> <source>
> <vendor id='0x046d'/>
> <product id='0xc52b'/>
> </source>
> </hostdev>
> <hostdev mode='subsystem' type='usb' managed='yes'>
> <source>
> <vendor id='0x0a5c'/>
> <product id='0x21e8'/>
> </source>
> </hostdev>
> <redirdev bus='usb' type='spicevmc'>
> </redirdev>
> <redirdev bus='usb' type='spicevmc'>
> </redirdev>
> <memballoon model='virtio'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x09'
> function='0x0'/>
> </memballoon>
> </devices>
> </domain>
>
>
> Adding them in was no problem in and of itself, it was saving it that
> caused a problem. Virsh didn't like those two definitions. Editing the
> "address type=pci" lines of both, and changing THOSE bus= definitions to
> say 0x03, instead of 0x00 gives me this error:
>
> error: XML error: Invalid PCI address 0000:03:07.0. slot must be <= 0
>
>
> Editing the one above it, the "address domain=" line, and changing the bus
> from 0x01 to 0x03 gives me this error:
>
> error: XML error: The device information for 0000:00:1c.0 has no PCI
> connection types listed
>
>
> Any thoughts?
>
> Half tempted to say 'screw it' and just hold off on doing a VFIO setup
> until I snag an Nvidia Polaris card later this year ><
>
> _______________________________________________
> vfio-users mailing list
> vfio-users at redhat.com
> https://www.redhat.com/mailman/listinfo/vfio-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160225/0fc8f062/attachment.htm>
More information about the vfio-users
mailing list