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

Alex Williamson alex.williamson at redhat.com
Thu Jul 28 02:52:13 UTC 2016


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