[RFC 1/2] vfio/pci: keep the prefetchable attribute of a BAR region in VMA
Marc Zyngier
maz at kernel.org
Fri Apr 30 12:47:43 BST 2021
Hi Shanker,
On Fri, 30 Apr 2021 12:25:08 +0100,
Shanker R Donthineni <sdonthineni at nvidia.com> wrote:
>
> Hi Alex
>
> On 4/29/21 2:46 PM, Alex Williamson wrote:
> > If an alignment fault is fixed by configuring a WC mapping, doesn't
> > that suggest that the driver performed an unaligned access itself and
> > is relying on write combining by the processor to correct that error?
> > That's wrong. Fix the driver or please offer another explanation of
> > how the WC mapping resolves this. I suspect you could enable tracing
> > in QEMU, disable MMIO mmaps on the vfio-pci device and find the invalid
> > access.
> >
> >> We've two concerns here:
> >> - Performance impacts for pass-through devices.
> >> - The definition of ioremap_wc() function doesn't match the host
> >> kernel on ARM64
> > Performance I can understand, but I think you're also using it to mask
> > a driver bug which should be resolved first. Thank
>
> We’ve already instrumented the driver code and found the code path
> for the unaligned accesses. We’ll fix this issue if it’s not
> following WC semantics.
>
> Fixing the performance concern will be under KVM stage-2 page-table
> control. We're looking for a guidance/solution for updating stage-2
> PTE based on PCI-BAR attribute.
Before we start discussing the *how*, I'd like to clearly understand
what *arm64* memory attributes you are relying on. We already have
established that the unaligned access was a bug, which was the biggest
argument in favour of NORMAL_NC. What are the other requirements?
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
More information about the linux-arm-kernel
mailing list