[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2] arm: xen: mm: use __GPF_DMA32 for arm64
On Wed, 11 Sep 2019, Peng Fan wrote: > > Subject: Re: [PATCH V2] arm: xen: mm: use __GPF_DMA32 for arm64 > > > > + Juergen, Boris > > > > On Fri, 30 Aug 2019, Christoph Hellwig wrote: > > > Can we take a step back and figure out what we want to do here? > > > > > > AFAICS this function allocates memory for the swiotlb-xen buffer, and > > > that means it must be <= 32-bit addressable to satisfy the DMA API > > > guarantees. That means we generally want to use GFP_DMA32 > > everywhere > > > that exists, but on systems with odd zones we might want to dip into > > > GFP_DMA. This also means swiotlb-xen doesn't actually do the right > > > thing on x86 at the moment. So shouldn't we just have one common > > > routine in swiotlb-xen.c that checks if we have CONFIG_ZONE_DMA32 set, > > > then try GFP_DMA32, and if not check if CONFIG_ZONE_DMA is set and > > > then try that, else default to GFP_KERNEL? > > > > Yes, for ARM/ARM64 it makes a lot of sense given that dom0 is 1:1 mapped > > (pseudo-physical == physical). I'll let Juergen and Boris comment on the > > x86 > > side of things, but on x86 PV Dom0 is not 1:1 mapped so > > GFP_DMA32 is probably not meaningful. > > If we only take ARM/ARM64, so could the following patch be ok? > > diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c > index d33b77e9add3..e5a6a73b2e06 100644 > --- a/arch/arm/xen/mm.c > +++ b/arch/arm/xen/mm.c > @@ -28,7 +28,11 @@ unsigned long xen_get_swiotlb_free_pages(unsigned int > order) > > for_each_memblock(memory, reg) { > if (reg->base < (phys_addr_t)0xffffffff) { > +#ifdef CONFIG_ZONE_DMA32 > + flags |= __GFP_DMA32; > +#else > flags |= __GFP_DMA; > +#endif > break; > } > } I am OK with something like this, but at that point we can use IS_ENABLED(CONFIG_ZONE_DMA32) for the check. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |