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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/