On Sat, 6 Apr 2019, Mikulas Patocka wrote: > Hi > > The patch 1c30844d2dfe272d58c8fc000960b835d13aa2ac ("mm: reclaim small > amounts of memory when an external fragmentation event occurs") breaks > memory management on parisc. > > I have a parisc machine with 7GiB RAM, the chipset maps the physical > memory to three zones: > 0) Start 0x0000000000000000 End 0x000000003fffffff Size 1024 MB > 1) Start 0x0000000100000000 End 0x00000001bfdfffff Size 3070 MB > 2) Start 0x0000004040000000 End 0x00000040ffffffff Size 3072 MB > (but it is not NUMA) > > With the patch 1c30844d2, the kernel will incorrectly reclaim the first > zone when it fills up, ignoring the fact that there are two completely > free zones. Basiscally, it limits cache size to 1GiB. > > For example, if I run: > # dd if=/dev/sda of=/dev/null bs=1M count=2048 > > - with the proper kernel, there should be "Buffers - 2GiB" when this > command finishes. With the patch 1c30844d2, buffers will consume just 1GiB > or slightly more, because the kernel was incorrectly reclaiming them. > > Mikulas BTW, 3 years ago, there was exactly the same bug: https://marc.info/?l=linux-kernel&m=146472966215941&w=2 Mikulas