I am worried this went quite tangent to the original patch under discussion here, but let me clarify at least one point. On Mon 09-03-20 16:04:54, Arnd Bergmann wrote: > On Mon, Mar 9, 2020 at 3:05 PM Russell King - ARM Linux admin [...] > > What happened to requests for memory from highmem being able to be > > sourced from lowmem if highmem wasn't available? That used to be > > standard kernel behaviour. > > AFAICT this is how it's supposed to work, but for some reason it > doesn't always. I don't know the details, but have heard of recent > complaints about it. I don't think it's the actual get_free_pages > failing, but rather some heuristic looking at the number of free pages. This is indeed the case. There are low memory reserves which are not allowed for requests which can be satisfied from higher zones. This is the case for many many years. Just have a look at lowmem_reserve and their usage in __zone_watermark_ok. The layout of the reserves can be configured by /proc/sys/vm/lowmem_reserve_ratio. HTH -- Michal Hocko SUSE Labs