Re: [discuss] Re: 32-bit dma allocations on 64-bit platforms

From: Takashi Iwai
Date: Thu Jun 24 2004 - 09:59:24 EST


At Thu, 24 Jun 2004 16:42:58 +0200,
Andi Kleen wrote:
>
> On Thu, 24 Jun 2004 16:36:47 +0200
> Takashi Iwai <tiwai@xxxxxxx> wrote:
>
> > At Thu, 24 Jun 2004 13:29:00 +0200,
> > Andi Kleen wrote:
> > >
> > > > Can't it be called with GFP_KERNEL at first, then with GFP_DMA if the
> > > > allocated pages are out of dma mask, just like in pci-gart.c?
> > > > (with ifdef x86-64)
> > >
> > > That won't work reliable enough in extreme cases.
> >
> > Well, it's not perfect, but it'd be far better than GFP_DMA only :)
>
> The only description for this patch I can think of is "russian roulette"

Even if we have a bigger DMA zone, it's no guarantee that the obtained
page is precisely in the given mask. We can unlikely define zones
fine enough for all different 24, 28, 29, 30 and 31bit DMA masks.


My patch for i386 works well in most cases, because such a device is
usually equipped on older machines with less memory than DMA mask.

Without the patch, the allocation is always <16MB, may fail even small
number of pages.


Takashi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/