On Fri, Mar 6, 2020 at 9:36 PM Nishanth Menon <nm@xxxxxx> wrote: > On 13:11-20200226, santosh.shilimkar@xxxxxxxxxx wrote: > > ~few 1000s still relevant spread between 4G and 8G (confirmed that both > are present, relevant and in use). > > I wish we could sunset, but unfortunately, I am told(and agree) > that we should'nt just leave products (and these are long term > products stuck in critical parts in our world) hanging in the air, and > migrations to newer kernel do still take place periodically (the best > I can talk in public forum at least). Thank you for the clear answer! I agree we should certainly not break any such use cases, and for the 8GB case there is not really a good replacement (using zram/zswap instead of highmem could work for some new workloads, but would be a rather risky change for an upgrade on already deployed systems). I hope it's ok to ask the same question every few years until you are reasonably sure that the users are ready to stop upgrading kernels beyond the following LTS kernel version. We can also do the same thing for the other 32-bit platforms that exceed the maximum amount of lowmem, and document which ones are known. In the meantime, it would seem useful to increase the amount of lowmem that can be used by default, using a combination of some of the changes mentioned earlier - add a VMSPLIT_2G_OPT config option for non-LPAE ARM kernels to handle the common i.MX6 case with 2GB of RAM without highmem - make VMSPLIT_2G_OPT (without LPAE) or VMSPLIT_2G (with LPAE) the default in most ARM defconfig files as well as distros, and disable highmem where possible, to see what breaks. - extend zswap to use all the available high memory for swap space when highmem is disabled. - revisit CONFIG_VMSPLIT_4G_4G for arm32 (and maybe mips32) to see if it can be done, and what the overhead is. This is probably more work than the others combined, but also the most promising as it allows the most user address space and physical ram to be used. Arnd