[PATCH] powerpc/mm: add ZONE_NORMAL zone for 64 bit kernel
Timur Tabi
timur at freescale.com
Tue Jul 24 09:36:19 EST 2012
Benjamin Herrenschmidt wrote:
> No, but dma_alloc_coherent would under the hood.
Which is what Shaohui's patch does. Well, it does it for GFP_DMA instead
of GFP_DMA32, but still.
When you said, "Drivers who know about a 32-bit limitations use
GFP_DMA32", I thought you meant that drivers should *set* GFP_DMA32.
>> I don't understand why a driver would set GFP_DMA32 if it has already set
>> the mask.
>
> The layers in between, not the well behaved drivers. Again, we have
> ZONE_DMA32 specifically for the purpose, why use something else ?
>
> In any case, make the whole thing at the very least a config option, I
> don't want sane HW to have to deal with split zones.
The DMA zone only kicks in if the DMA mask is set to a size smaller that
available physical memory. Sane HW should set the DMA mask to
DMA_BIT_MASK(36). And we have plenty of sane HW on our SOCs, but not
every device is like that.
The whole point behind this patch is that some drivers are setting a DMA
mask of 32, but still getting memory above 4GB.
--
Timur Tabi
Linux kernel developer at Freescale
More information about the Linuxppc-dev
mailing list