[vfio-users] BIOS memory mapping or chipset issue with MMIO prevents IGD pass-through in legacy mode?

globalgorrilla at fastmail.fm globalgorrilla at fastmail.fm
Sat Oct 15 23:49:00 UTC 2016


Hi Alex,

The first time QEMU is run the display attached via DP comes out of 
standby and then goes into power saving.

This is used to capture the SeaBIOS debug outputs:

   <qemu:commandline>
     <qemu:arg value='-global'/>
     <qemu:arg value='isa-debugcon.iobase=0x402'/>
     <qemu:arg value='-debugcon'/>
     <qemu:arg value='file:/tmp/archlinux.log'/>
   </qemu:commandline>

No 00:02.0 (boots to grub from CD-ROM ISO):
https://pastebin.com/y0xtURW5

With 00:02.0 (hangs):
https://pastebin.com/GPJ3nRq2

/proc/iomem
https://pastebin.com/b4WtKy89

/proc/ioports
https://pastebin.com/8RAbkGy8

Thanks

On 27 Jul 2016, at 19:52, Alex Williamson wrote:

> On Wed, 27 Jul 2016 18:42:29 -0700
> globalgorrilla at fastmail.fm wrote:
>
>> On Wed, Jul 27, 2016, at 06:04 PM, Alex Williamson wrote:
>>
>>> Hmm, the kernel not exposing the VGA regions is really the only way 
>>> we
>>> can fail here and the only two ways that the kernel won't expose 
>>> VGA,
>>> given that enabled in the config, is if the device isn't VGA (which 
>>> we
>>> can see by your class code, it is) or if the disable_vga option to
>>> vfio_pci is used.  You don't happen to have that left over from
>>> assigning discrete devices, do you?
>>>
>>> # cat /sys/module/vfio_pci/parameters/disable_vga
>>
>> Indeed I did, thanks! Now with it gone I still get the DMAR messages 
>> ...
>>
>> [ 4683.644755] DMAR: DRHD: handling fault status reg 3
>> [ 4683.703123] DMAR: [DMA Read] Request device [00:02.0] fault addr
>> 8f440000 [fault reason 06] PTE Read access is not set
>> [ 4683.831145] DMAR: DRHD: handling fault status reg 2
>> [ 4683.889487] DMAR: [DMA Read] Request device [00:02.0] fault addr
>> 8f494000 [fault reason 06] PTE Read access is not set
>
> As noted in the blog post, these aren't necessarily bad so long as 
> they
> are not continuous.  They're probably just in the gap between 
> resetting
> the device and reprogramming the stolen memory range.
>
>> ... but I also get pass-through:
>>
>> [ 4870.366423] kvm: zapping shadow pages for mmio generation 
>> wraparound
>> [ 4887.800200] vgaarb: device changed decodes:
>> PCI:0000:04:00.0,olddecodes=io+mem,decodes=io+mem:owns=none
>> [ 4887.800202] vgaarb: device changed decodes:
>> PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
>>
>> No output yet.   Is vgaarb looking correct above? 0000:04:00.0 is an 
>> R9
>> 290.
>
> Matches what I see on my system.  I don't spot anything else wrong.
> Make sure your bios.bin is from your QEMU 2.7-rc0 build tree.  Make
> sure that IGD is set to primary graphics on the host (I assume it is 
> or
> you wouldn't have a ROM).  Try adding '-chardev stdio,id=seabios
> -device isa-debugcon,iobase=0x402,chardev=seabios' to your command 
> line
> and post the log from it.




More information about the vfio-users mailing list