On Thu, May 03, 2018 at 02:03:38PM +0200, Michal Hocko wrote: > On Sat 28-04-18 19:10:47, Matthew Wilcox wrote: > > Another way we could approach this is to get rid of ZONE_DMA. Make GFP_DMA > > a flag which doesn't map to a zone. Rather, it redirects to a separate > > allocator. At boot, we hand all memory under 16MB to the DMA allocator. The > > DMA allocator can have a shrinker which just hands back all the memory once > > we're under memory pressure (if it's never had an allocation). > > Yeah, that was exactly the plan with the CMA allocator... We wouldn't > need the shrinker because who cares about 16MB which is not usable > anyway. The CMA pool sounds fine. But please kill GFP_DMA off first / at the same time. 95% of the users are either completely bogus or should be using the DMA API, and the few other can use the new allocator directly.