Re: [RFC PATCH] mm: support large folio numa balancing

From: Kefeng Wang
Date: Mon Nov 13 2023 - 07:10:44 EST




On 2023/11/13 18:53, David Hildenbrand wrote:
On 13.11.23 11:45, Baolin Wang wrote:
Currently, the file pages already support large folio, and supporting for
anonymous pages is also under discussion[1]. Moreover, the numa balancing
code are converted to use a folio by previous thread[2], and the migrate_pages
function also already supports the large folio migration.

So now I did not see any reason to continue restricting NUMA balancing for
large folio.

I recall John wanted to look into that. CCing him.

I'll note that the "head page mapcount" heuristic to detect sharers will
now strike on the PTE path and make us believe that a large folios is
exclusive, although it isn't.

As spelled out in the commit you are referencing:

commit 6695cf68b15c215d33b8add64c33e01e3cbe236c
Author: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
Date:   Thu Sep 21 15:44:14 2023 +0800

    mm: memory: use a folio in do_numa_page()
    Numa balancing only try to migrate non-compound page in do_numa_page(),
    use a folio in it to save several compound_head calls, note we use
    folio_estimated_sharers(), it is enough to check the folio sharers since
    only normal page is handled, if large folio numa balancing is supported, a
    precise folio sharers check would be used, no functional change intended.


I'll send WIP patches for one approach that can improve the situation soonish.

When convert numa balance to use folio, I make similar change, it works
with large anon folio(test with v5), but David's precise folio sharers
should be merged firstly, also if a large folio shared by many process,
we maybe split it, don't sure about it, this need some evaluation.