On Thu 25-06-15 11:20:56, Michal Hocko wrote: [...] > From your /proc/zoneinfo: > > Node 0, zone HighMem > > pages free 2536526 > > min 128 > > low 37501 > > high 74874 > > scanned 0 > > spanned 3214338 > > present 3017668 > > managed 3017668 > > You have 11G of highmem. Which is a lot wrt. the the lowmem > > > Node 0, zone Normal > > pages free 37336 > > min 4789 > > low 5986 > > high 7183 > > scanned 0 > > spanned 123902 > > present 123902 > > managed 96773 > > which is only 378M! So something had to eat portion of the lowmem. And just to clarify. Your lowmem has only 123902 pages (+DMA zone which has 16M so it doesn't add much) which is ~480M. The lowmem can sit only in the low 1G (actually less because part of that is used by kernel for special mappings). You only have half of that because, presumably some HW has reserved portion of that address range. So your lowmem zone is really tiny. Now part of that range is used for kernel stuff like struct pages which have to describe the full memory and this is eating quite a lot for 3 million pages. So you ended up with only 378M really usable for all the kernel allocations which cannot live in the highmem (and there are many of those). This makes a large memory pressure on that zone even though you might have huge amount of highmem free. This is the primary reason why PAE kernels are not really usable for large memory setups in general. A very specific usecases might work but even then I would have to a very strong reason to stick with 32b kernel (e.g. a stupid out of tree driver which is 32b specific or something similar). -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>