Re: [PATCH 0/5] fix exhaustion of ZONE_DMA with swiotlb (in x86tree)

From: Ingo Molnar
Date: Mon Sep 08 2008 - 09:53:46 EST

* Joerg Roedel <joerg.roedel@xxxxxxx> wrote:

> On Mon, Sep 08, 2008 at 06:10:09PM +0900, FUJITA Tomonori wrote:
> > This patchset (against tip/master) fixes the problem that swiotlb
> > exhausts ZONE_DMA:
> >
> >
> >
> > The root problem is that swiotlb_alloc_coherent always use ZONE_DMA,
> > which is fine for IA64 but not for x86_64.
> >
> > This patchset makes the callers set up the gfp flags so that
> > swiotlb_alloc_coherent can stop playing with the gfp flags.
> >
> > I think that it would be better to remove the allocation code in
> > swiotlb_alloc_coherent theoretically (what swiotlb should do is taking
> > care of the swiotlb memory. And swiotlb_alloc_coherent is not useful
> > since we use it only when we can't allocate memory reachable by the
> > device or we are in out of memory). But that code works for both x86
> > and IA64 so it's not so bad, I guess.
> >
> > #1 is for IA64, #2-4 for x86, and #5 is for swiotlb.
> Cool :-)
> This is much better than our last two tries to solve this problem.
> Doing no gfp handling at all in swiotlb_alloc_coherent is a nice and
> clean solution.

i've applied Fujita's patches to tip/x86/iommu:

68e91d6: swiotlb: remove GFP_DMA hack in swiotlb_alloc_coherent
823e7e8: x86: dma_alloc_coherent sets gfp flags properly
8a53ad6: x86: fix nommu_alloc_coherent allocation with NULL device argument
de9f521: x86: move pci-nommu's dma_mask check to common code
3a80b6a: ia64: dma_alloc_coherent always use GFP_DMA

Tony, do you have any problem with us carrying the ia64 commit above
(3a80b6a, also attached below) in tip/x86/iommu tree? It's really small
and straightforward.