[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qemu] vfio_pci: Allow disabling quirks
From: |
Alex Williamson |
Subject: |
Re: [Qemu-devel] [PATCH qemu] vfio_pci: Allow disabling quirks |
Date: |
Wed, 09 Sep 2015 12:34:29 -0600 |
On Wed, 2015-09-09 at 17:17 +1000, Alexey Kardashevskiy wrote:
> On 07/20/2015 12:40 PM, Alexey Kardashevskiy wrote:
> > On 07/20/2015 03:15 AM, Alex Williamson wrote:
> >> On Sun, 2015-07-19 at 06:50 -0600, Alex Williamson wrote:
> >>> On Sun, 2015-07-19 at 18:19 +1000, Alexey Kardashevskiy wrote:
> >>>> The existing quirks aim config space and MSIX BAR accesses interception.
> >>>> These are not always needed, for example, on pseries machines,
> >>>> config space and MSI/MSIX configuration are handled by hypervisor.
> >>>>
> >>>> This adds a "quirks" property to control whether to enable quirks or not;
> >>>> the property is set to "true" by default.
> >>>>
> >>>> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> >>>> ---
> >>>>
> >>>> Helps to get
> >>>> VGA compatible controller: NVIDIA Corporation GM107GL [Quadro K2200]
> >>>> (rev a2)
> >>>> (which does not need the quirk anyway) working on POWER8 system.
> >>
> >> BTW, as I was working on the rtl quirk last week, I re-realized
> >> something; page size doesn't matter for quirks. If we want to carve a
> >> 4k hole for a PCI extended config space window, we can do that
> >> regardless of the host page size. The rtl quirk only carves out an 8
> >> byte window. It's the Memory API's problem to figure out the extent of
> >> the region that needs to fault into QEMU and which parts go through the
> >> quirk vs the slow backing of the BAR.
> >
> > But the memory API cannot handle it right now, right?
> >
> >> That's why we create the slow
> >> backing across the entire BAR. So if this quirk isn't working for you,
> >> page size is probably not the reason.
> >
> > Quirks do not install - KVM fails to register these memory regions. And
> > when I fix this, they do not for that another unknown reason, so it is not
> > probably, it is definitely :)
> >
> >
> >> That said, there are some
> >> gratuitous uses of target page size in the quirk code. Part of it is
> >> just a convenience factor for packing data structures, part of it is
> >> completely unnecessary, like the TARGET_PAGE_ALIGN setting up the quirk
> >> in question here. Thanks,
> >
> >
> >
> > Regarding automatic disabling of quirks on POWER - I'd love to do that but
> > how can I do this without adding a property? #ifdef PPC64 in hw/vfio/pci.c?
> > We were avoiding this.
>
> Ping?
>
> The only proper automatic disabling on POWER I can think of would be:
> 1) (still) add a "allow_quirks" property
> 2) in the pseries machine init code, set the property in the compat_props
> to "false".
>
> But this still requires a property. Better ideas?
See the patch series I just posted that eliminates use of target page
size in quirks and then tell me if/why you still need to avoid quirks on
POWER. Thanks,
Alex