GFP_ATOMIC versus GFP_NOWAIT

Dan Williams
2009-11-13T01:28:19Z

Looking through the tree it seems that almost all drivers that need to
allocate memory in atomic contexts use GFP_ATOMIC. I have been asking
dmaengine device driver authors to switch their atomic allocations to
GFP_NOWAIT. The rationale being that in most cases a dma device is
either offloading an operation that will automatically fallback to
software when the descriptor allocation fails, or we can simply poll
and wait for the dma device to release some in use descriptors. So it
does not make sense to grab from the emergency pools when the result
of an allocation failure is some additional cpu overhead. Am I
correct in my nagging, and should this idea be spread outside of
drivers/dma/ to cut down on GFP_ATOMIC usage, or is this not a big
issue?

Thanks,
Dan