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 <[email protected]> > >>>> --- > >>>> > >>>> 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
