Re: Define CONFIG_BOUNCE to avoid useless inclusion of bounce bufferlogic.

From: Christoph Lameter
Date: Wed May 23 2007 - 19:07:30 EST


On Wed, 23 May 2007, Russell King wrote:

> > GFP_DMA allocations are an exception and that exception can be removed
> > from the core VM by not defining ZONE_DMA. You cannot switch off the
> > NORMAL zone.
>
> I'd like to be able to switch off the normal and highmem zones and leave
> just the DMA zone behind. The normal and highmem zones are just a waste
> of space on ARM.

If you do not have exceptional memory requirements then you do not need a
DMA zone. The core code allows you to switch off ZONE_DMA but not
ZONE_NORMAL. For a description of the roles of the zones see
include/linux/mmzone.h

> > Nope. The DMA zone is for crappy DMA devices that can only use a portion
> > of memory.
>
> I'm sorry, we're going to have to agree to disagree then.
>
> As for your assertion that it's "crappy DMA devices" there are modern
> PCI based platforms being produced by Marvell (which were designed by
> Intel) which can only DMA from 64MB of memory, inspite of the PCI
> device having full PCI busmastering capabilities.

Ok sorry for the word choice.

> At the end of the day, it is _far_ simpler from an architectural point
> of view for memory to live in the DMA zone and disable the normal and
> highmem zones than it is to selectively populate the normal zone
> depending on whether device X is configured, and then also have to hack
> around various drivers which decide they want to use __GFP_DMA because
> of some antequated x86ism which doesn't apply on non-x86.

If you switch off CONFIG_ZONE_DMA then __GFP_DMA becomes a no op. So no
problem. Many of us want to rid the kernel of __GFP_DMA. Please join the
club and nuke the useless ZONE_DMA on your platforms.


-
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/