Re: [PATCH RFC] dma-direct: Try reallocation with GFP_DMA32 if possible
From: Takashi Iwai
Date: Fri Apr 20 2018 - 05:59:04 EST
On Fri, 20 Apr 2018 11:47:02 +0200,
Christoph Hellwig wrote:
> On Mon, Apr 16, 2018 at 05:18:19PM +0200, Takashi Iwai wrote:
> > As the recent swiotlb bug revealed, we seem to have given up the
> > direct DMA allocation too early and felt back to swiotlb allocation.
> > The reason is that swiotlb allocator expected that dma_direct_alloc()
> > would try harder to get pages even below 64bit DMA mask with
> > GFP_DMA32, but the function doesn't do that but only deals with
> > GFP_DMA case.
> > This patch adds a similar fallback reallocation with GFP_DMA32 as
> > we've done with GFP_DMA. The condition is that the coherent mask is
> > smaller than 64bit (i.e. some address limitation), and neither GFP_DMA
> > nor GFP_DMA32 is set beforehand.
> > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
> > ---
> > This is a resend of a test patch included in the previous thread
> > ("swiotlb: Fix unexpected swiotlb_alloc_coherent() failures").
> I like the patch, but as-is it doesn't apply. Can you resend it against
> latest Linus' tree?
It's because it's written on the tree with another fix patch I sent
beforehand ("[PATCH 1/2] dma-direct: Don't repeat allocation for no-op
Could you check that one at first? I'm fine to rebase and resubmit
this one, if still preferred, though.