qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] vfio/pci-quirks: Set non-zero GMS memory size f


From: Zhang, Xiong Y
Subject: Re: [Qemu-devel] [PATCH] vfio/pci-quirks: Set non-zero GMS memory size for IGD
Date: Wed, 26 Jul 2017 05:22:09 +0000

Sorry, we indeed found Intel windows guest graphic driver couldn't be bind when 
GMS memory size is zero. And we have fixed it and the next intel windows driver 
release will contain this fix.
So currently please use x-igd-gms in legacy mode to work around this. 

BTW, how did you know window driver allocate extra ~4G memory when GMS size set 
to 0 ?

thanks
> -----Original Message-----
> From: Alex Williamson [mailto:address@hidden
> Sent: Tuesday, July 25, 2017 11:32 PM
> To: Dmitry Fleytman <address@hidden>
> Cc: address@hidden; Zhang, Xiong Y <address@hidden>
> Subject: Re: [PATCH] vfio/pci-quirks: Set non-zero GMS memory size for IGD
> 
> [cc +Zhang, Xiong Y]
> 
> 
> Intel, any comments?
> 
> 
> On Mon, 24 Jul 2017 15:07:29 +0300
> Dmitry Fleytman <address@hidden> wrote:
> 
> > There is a claim that GMS memory is unused however
> > Intel Windows 10 drivers starting from V.4534 (10/7/2016)
> > allocate extra ~4G memory when GMS size set to 0.
> >
> > This patch fixes this issue by seting IGD GMS memory
> > size to minimum by changing default value of x-igd-gms
> > device parameter.
> >
> > Signed-off-by: Dmitry Fleytman <address@hidden>
> > ---
> >  hw/vfio/pci-quirks.c | 13 +++++++++----
> >  hw/vfio/pci.c        |  2 +-
> >  2 files changed, 10 insertions(+), 5 deletions(-)
> >
> > diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
> > index 349085e..197cb90 100644
> > --- a/hw/vfio/pci-quirks.c
> > +++ b/hw/vfio/pci-quirks.c
> > @@ -1527,10 +1527,15 @@ static void
> vfio_probe_igd_bar4_quirk(VFIOPCIDevice *vdev, int nr)
> >      }
> >
> >      /*
> > -     * Assume we have no GMS memory, but allow it to be overrided by
> device
> > -     * option (experimental).  The spec doesn't actually allow zero GMS
> when
> > -     * when IVD (IGD VGA Disable) is clear, but the claim is that it's 
> > unused,
> > -     * so let's not waste VM memory for it.
> > +     * There is a claim that GMS memory is unused and we want to waste
> for it
> > +     * as less VM memory as possible, however Intel Windows 10 drivers
> starting
> > +     * from V.4534 (10/7/2016) allocate extra ~4G memory when GMS
> size set to 0.
> > +     * The spec as well doesn't actually allow zero GMS when IVD
> > +     * (IGD VGA Disable) is clear.
> > +     *
> > +     * Therefore we set GMS memory size to minimal by default via device
> > +     * option x-igd-gms (experimental) and allow further tweaking of this
> > +     * parameter.
> >       */
> >      gmch &= ~((gen < 8 ? 0x1f : 0xff) << (gen < 8 ? 3 : 8));
> >
> > diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
> > index d4051cb..bda07b7 100644
> > --- a/hw/vfio/pci.c
> > +++ b/hw/vfio/pci.c
> > @@ -2982,7 +2982,7 @@ static Property vfio_pci_dev_properties[] = {
> >                         sub_vendor_id, PCI_ANY_ID),
> >      DEFINE_PROP_UINT32("x-pci-sub-device-id", VFIOPCIDevice,
> >                         sub_device_id, PCI_ANY_ID),
> > -    DEFINE_PROP_UINT32("x-igd-gms", VFIOPCIDevice, igd_gms, 0),
> > +    DEFINE_PROP_UINT32("x-igd-gms", VFIOPCIDevice, igd_gms, 1),
> >      /*
> >       * TODO - support passed fds... is this necessary?
> >       * DEFINE_PROP_STRING("vfiofd", VFIOPCIDevice, vfiofd_name),




reply via email to

[Prev in Thread] Current Thread [Next in Thread]