On Fri, Apr 30, 2021 at 10:54:17AM +0100, Lorenzo Pieralisi wrote: > [+Jason, Ben] > > On Thu, Apr 29, 2021 at 11:29:05AM -0500, Shanker Donthineni wrote: > > For pass-through device assignment, the ARM64 KVM hypervisor retrieves > > the memory region properties physical address, size, and whether a > > region backed with struct page or not from VMA. The prefetchable > > attribute of a BAR region isn't visible to KVM to make an optimal > > decision for stage2 attributes. > > > > This patch updates vma->vm_page_prot and maps with write-combine > > attribute if the associated BAR is prefetchable. For ARM64 > > pgprot_writecombine() is mapped to memory-type MT_NORMAL_NC which > > has no side effects on reads and multiple writes can be combined. > > > > Signed-off-by: Shanker Donthineni <sdonthineni@xxxxxxxxxx> > > drivers/vfio/pci/vfio_pci.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > A bit of background information that may be useful: > > https://lore.kernel.org/linux-pci/2b539df4c9ec703458e46da2fc879ee3b310b31c.camel@xxxxxxxxxxxxxxxxxxx This can't happen automatically. writecombining or not is a uABI visible change. Userspace needs to explicitly request and know that the mmap it gets back is writecombining. Jason