[PATCH] Support x-vga=on for PCI host passthrough devices

Alex Williamson alex.williamson at redhat.com
Wed Oct 7 19:17:57 UTC 2020

On Wed, 07 Oct 2020 19:59:36 +0100
steve <steve at snewbury.org.uk> wrote:

> -------- Original message --------
> From: Alex Williamson <alex.williamson at redhat.com>
> Date: 07/10/2020 18:08 (GMT+00:00)
> To: Steven Newbury <steve at snewbury.org.uk>
> Cc: Peter Krempa <pkrempa at redhat.com>, libvir-list at redhat.com
> Subject: Re: [PATCH] Support x-vga=on for PCI host passthrough devices
> On Wed, 07 Oct 2020 14:20:21 +0100
> Steven Newbury <steve at snewbury.org.uk> wrote:
> > On Wed, 2020-10-07 at 15:07 +0200, Peter Krempa wrote:
> > > On Wed, Oct 07, 2020 at 13:59:35 +0100, Steven Newbury wrote: 
> > > > When using a passthrough GPU with libvirt there is no option to
> > > > pass "x-vga=on" to the device specification.  This means legacy 
> > >
> > > Please note that we don't add support for experimental qemu features
> > > (prefixed with "x-") until they are deemed stable and the x- is
> > > removed, so this patch can't be accepted in this form.
> > >  
> > Okay, so should I bug qemu to promote the feature to stable?  It's been
> > like that forever, it's certainly not a new feature:
> >
> > https://github.com/qemu/qemu/commit/f15689c7e4422d5453ae45628df5b83a53e518ed
> >
> > So it's been that way for 8 years!
> It's that way upstream because VGA routing is a nightmare, it's
> essentially broken on any system with Intel graphics because the device
> always has VGA regions routed to itself.  That problem is not getting
> better, but the demand for VGA is getting less, so there's very little
> incentive to work on the problem rather than just letting it die out
> once nobody cares about VGA.  Any 600 series or newer GeForce card
> should have a UEFI ROM available.  Also note that VGA support can be
> configured both as a module option of vfio-pci and a build option, so
> there's no guarantee that a display class device will have the VGA
> regions available for QEMU to use this option.  Thanks,
> I'm still going to fix up my patch even if it's not going to get
> committed.  It's very useful for me, my old nvidia card doesn't work
> without it, and I also need it for seabios/dos compatibility with my
> ATIs. In fairness, I haven't tried it with my Intel, it's too old to
> support the new vGPU stuff and I need to see what I'm typing! ;-)
> For what it's worth, I had no trouble with GPU passthrough once I
> realised it needed x-vga=on. VGA arbitration was automatically
> switched. It's been rock solid stability wise, although the 8800 has
> horrible VGA/DOS performance. Windows10 runs like on bare metal.

Are you aware that you can add arbitrary options to devices using the
<qemu:commandline> support in libvirt?  For example:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
    <hostdev mode='subsystem' type='pci' managed='yes'>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      <alias name='ua-geforce8800'/>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.ua-geforce8800.x-vga=on'/>

This is generally how users make use of unsupportable or
not-yet-supported QEMU features while still using libvirt to manage the
VM.  Thanks,


More information about the libvir-list mailing list