Messages in this thread | | | Date | Fri, 27 Apr 2018 11:07:07 -0500 (CDT) | From | Christopher Lameter <> | Subject | Re: [LSF/MM TOPIC NOTES] x86 ZONE_DMA love |
| |
On Fri, 27 Apr 2018, Michal Hocko wrote:
> On Thu 26-04-18 22:35:56, Christoph Hellwig wrote: > > On Thu, Apr 26, 2018 at 09:54:06PM +0000, Luis R. Rodriguez wrote: > > > In practice if you don't have a floppy device on x86, you don't need ZONE_DMA, > > > > I call BS on that, and you actually explain later why it it BS due > > to some drivers using it more explicitly. But even more importantly > > we have plenty driver using it through dma_alloc_* and a small DMA > > mask, and they are in use - we actually had a 4.16 regression due to > > them. > > Well, but do we need a zone for that purpose? The idea was to actually > replace the zone by a CMA pool (at least on x86). With the current > implementation of the CMA we would move the range [0-16M] pfn range into > zone_movable so it can be used and we would get rid of all of the > overhead each zone brings (a bit in page flags, kmalloc caches and who > knows what else)
Well it looks like what we are using it for is to force allocation from low physical memory if we fail to obtain proper memory through a normal channel. The use of ZONE_DMA is only there for emergency purposes. I think we could subsitute ZONE_DMA32 on x87 without a problem.
Which means that ZONE_DMA has no purpose anymore.
Can we make ZONE_DMA on x86 refer to the low 32 bit physical addresses instead and remove ZONE_DMA32?
That would actually improve the fallback because you have more memory for the old devices.
| |