With v4.17, I can see an issue like those addressed in commits 3c605096d315 ("mm/page_alloc: restrict max order of merging on isolated pageblock") and d9dddbf55667 ("mm/page_alloc: prevent merging between isolated and other pageblocks"). After running a CMA stress test for a while, I see: MemTotal: 8168384 kB MemFree: 8457232 kB MemAvailable: 9204844 kB If I let the test run, MemFree and MemAvailable will continue to grow. I am certain the issue is with pageblocks of migratetype ISOLATED. If I disable all special 'is_migrate_isolate' checks in freepage accounting, the issue goes away. Further, I am pretty sure the issue has to do with pageblock merging and or page orders spanning pageblocks. If I make pageblock_order equal MAX_ORDER-1, the issue also goes away. Just looking for suggesting in where/how to debug. I've been hacking on this without much success. -- Mike Kravetz