[Xen-devel] [RFC PATCH 0/2] xen/arm: fix "xen_add_mach_to_phys_entry: cannot add" problem

Ian Campbell ian.campbell at citrix.com
Tue Jul 8 04:06:53 PDT 2014


On Tue, 2014-07-08 at 11:50 +0100, David Vrabel wrote:
> On 07/07/14 21:24, Stefano Stabellini wrote:
> > Hi all,
> > Xen support in Linux for ARM and ARM64 suffers from lack of support for
> > multiple mfn to pfn mappings: whenever a frontend grants the same page
> > multiple times to the backend, the mfn to pfn accounting in
> > arch/arm/xen/p2m.c fails. The issue has become critical since v3.15,
> > when xen-netfront/xen-netback switched from grant copies to grant
> > mappings, therefore causing the issue to happen much more often.
> > 
> > Fixing the mfn to pfn accounting in p2m.c is difficult and expensive,
> > therefore we are looking for alternative solutions. One idea is avoiding
> > mfn to pfn conversions altogether. The only code path that needs them is
> > swiotlb-xen:unmap_page (and single_for_cpu and single_for_device).
> > 
> > To avoid mfn to pfn conversions we rely on a second p2m mapping done by
> > Xen, see the attached patch. In Linux we use it to perform the cache
> > maintenance operations without mfns conversions.
> 
> This will only work with PIPT caches (or certain types of VIPT that also
> have alias detection).  Do all the CPUs that Xen runs on have these type
> of cache?

v7 (at least, didn't check/don't care about v6) mandates PIPT for data
caches, yes.

Ian.




More information about the linux-arm-kernel mailing list