[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [Xen-users] ARM: "xen_add_mach_to_phys_entry: cannot add ... already exists and panics"

On Fri, 4 Jul 2014, David Vrabel wrote:
> On 04/07/14 15:12, Stefano Stabellini wrote:
> > On Fri, 4 Jul 2014, David Vrabel wrote:
> >> On 03/07/14 18:47, Stefano Stabellini wrote:
> >>>
> >>> At the moment I would like a way to disable grant mappings and go back
> >>> to grant copies on demand. Maybe we could have a feature flag to change
> >>> the behaviour of the network backend?
> >>
> >> You must fix the ARM code to handle this properly.
> >>
> >> blkback also uses grant maps and depending on the frontend blkback may
> >> grant map the same machine frame multiple time.  We have see frontends
> >> that send such requests.
> > 
> > Indeed, it must be fixed properly. The workaround of disabling grant
> > mappings would be just to buy us some time to come up with the fix.
> It's an expensive workaround though.

In terms of performances or in terms of code?
If it's the performances you are worried about, we could enable the
workaround just for arm and arm64.

> >> I can't remember how the ARM code works.  Where is the problematic m2p
> >> lookup?
> > 
> > arch/arm/xen/p2m.c
> > 
> > 
> >> Perhaps this could be avoided for foreign frames?
> > 
> > Unfortunately no. The whole point of p2m.c is to be able to translate
> > foreign frames for dma operations.
> This is a p2m lookup though, which is fine, yes?  Where, specifically is
> a mfn_to_pfn() lookup needed for a foreign MFN.
drivers/xen/swiotlb-xen.c:xen_unmap_single. xen_bus_to_phys is based on
the value returned by mfn_to_pfn.

> FWIW, On x86, mfn_to_pfn() on a foreign MFN will return an invalid value
> (unless the gntdev device made the mapping and the m2p_override is used).

Keep in mind that ARM domains are a bit like PVH without IOMMU.

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.