On 07/11/2018 05:21 PM, Michal Hocko wrote:
On Tue 10-07-18 18:44:34, Linus Torvalds wrote:
[...]
That was what I tried to encourage with actually removing the pages
form the page list. That would be an _incremental_ interface. You can
remove MAX_ORDER-1 pages one by one (or a hundred at a time), and mark
them free for ballooning that way. And if you still feel you have tons
of free memory, just continue removing more pages from the free list.
We already have an interface for that. alloc_pages(GFP_NOWAIT, MAX_ORDER -1).
So why do we need any array based interface?
Yes, I'm trying to get free pages directly via alloc_pages, so there
will be no new mm APIs.
I plan to let free page allocation stop when the remaining system free
memory becomes close to min_free_kbytes (prevent swapping).
Best,
Wei