On Wed, Dec 20, 2023 at 6:45 AM Donet Tom <donettom@xxxxxxxxxxxxxxxxxx> wrote: > > > On 12/20/23 09:46, Yu Zhao wrote: > > On Tue, Dec 19, 2023 at 9:01 PM Kinsey Ho <kinseyho@xxxxxxxxxx> wrote: > >> This series is the result of the following discussion: > >> https://lore.kernel.org/47066176-bd93-55dd-c2fa-002299d9e034@xxxxxxxxxxxxx/ > >> > >> It mainly avoids building the code that walks page tables on CPUs that > >> use it, i.e., those don't support hardware accessed bit. Specifically, > >> it introduces a new Kconfig to guard some of functions added by > >> commit bd74fdaea146 ("mm: multi-gen LRU: support page table walks") > >> on CPUs like POWER9, on which the series was tested. > >> > >> > >> Kinsey Ho (4): > >> mm/mglru: add CONFIG_ARCH_HAS_HW_PTE_YOUNG > >> mm/mglru: add CONFIG_LRU_GEN_WALKS_MMU > >> mm/mglru: remove CONFIG_MEMCG > >> mm/mglru: remove CONFIG_TRANSPARENT_HUGEPAGE > >> > >> arch/Kconfig | 8 + > >> arch/arm64/Kconfig | 1 + > >> arch/x86/Kconfig | 1 + > >> arch/x86/include/asm/pgtable.h | 6 - > >> include/linux/memcontrol.h | 2 +- > >> include/linux/mm_types.h | 16 +- > >> include/linux/mmzone.h | 28 +--- > >> include/linux/pgtable.h | 2 +- > >> kernel/fork.c | 2 +- > >> mm/Kconfig | 4 + > >> mm/vmscan.c | 271 ++++++++++++++++++--------------- > >> 11 files changed, 174 insertions(+), 167 deletions(-) > > +Donet Tom <donettom@xxxxxxxxxxxxxxxxxx> > > who is also working on this. > > > > Donet, could try this latest version instead? If it works well as the > > old one you've been using, can you please provide your Tested-by tag? > > Thanks. > > Hi Yu Zhao, > > This patch set looks promising. > > I have conducted tests on PowerPC and x86. > > In old patch set there is a cleanup patch which removes > struct scan_control *sc argument from try_to_inc_max_seq() and > run_aging(), Do we need to include that patch? Sorry not for including that patch in this series. It's the first patch in the next cleanup series, which we haven't fully tested yet. It'll be the first order of business after the holiday season (mid Jan), does the schedule work for you? > =>Here are some test results from PowerPC. > > # ls -l vmscan.o > -rw-r--r--. 1 root root 3600080 Dec 19 22:35 vmscan.o > > # size vmscan.o > text data bss dec hex filename > 95086 27412 0 122498 1de82 vmscan.o > > # ./scripts/bloat-o-meter vmscan.o.old vmscan.o > add/remove: 4/8 grow/shrink: 7/9 up/down: 860/-2524 (-1664) > Function old new delta > should_abort_scan - 472 +472 > inc_max_seq.isra 1472 1612 +140 > shrink_one 680 760 +80 > lru_gen_release_memcg 508 556 +48 > lru_gen_init_pgdat 92 132 +40 > shrink_node 4040 4064 +24 > lru_gen_online_memcg 680 696 +16 > lru_gen_change_state 3968 3984 +16 > ------ > shrink_lruvec 2168 2152 -16 > lru_gen_seq_write 1980 1964 -16 > isolate_folios 6904 6888 -16 > lru_gen_init_memcg 32 12 -20 > mm_list 24 - -24 > lru_gen_exit_memcg 388 344 -44 > try_to_shrink_lruvec 904 816 -88 > lru_gen_rotate_memcg 832 700 -132 > lru_gen_migrate_mm 132 - -132 > lru_gen_seq_show 1484 1308 -176 > iterate_mm_list_nowalk 288 - -288 > lru_gen_look_around 2284 1984 -300 > lru_gen_add_mm 528 - -528 > lru_gen_del_mm 720 - -720 > Total: Before=116213, After=114549, chg -1.43% > > =>Here are some test results from x86. > > $ ls -l vmscan.o > -rw-r--r--. 1 donettom donettom 2545792 Dec 20 15:16 vmscan.o > > $ size vmscan.o > text data bss dec hex filename > 109751 32189 0 141940 22a74 vmscan.o > $ > > $ ./scripts/bloat-o-meter vmscan.o.old vmscan.o > add/remove: 7/3 grow/shrink: 14/4 up/down: 2307/-1534 (773) > Function old new delta > inc_max_seq - 1470 +1470 > should_abort_scan - 229 +229 > isolate_folios 4469 4562 +93 > lru_gen_rotate_memcg 641 731 +90 > lru_gen_init_memcg 41 99 +58 > lru_gen_release_memcg 282 336 +54 > lru_gen_exit_memcg 306 350 +44 > walk_pud_range 2502 2543 +41 > shrink_node 2912 2951 +39 > lru_gen_online_memcg 402 434 +32 > lru_gen_seq_show 1112 1140 +28 > lru_gen_add_folio 740 757 +17 > lru_gen_look_around 1217 1233 +16 > __pfx_should_abort_scan - 16 +16 > __pfx_inc_max_seq - 16 +16 > iterate_mm_list_nowalk 277 292 +15 > shrink_one 413 426 +13 > lru_gen_init_lruvec 190 202 +12 > ----- > try_to_shrink_lruvec 717 643 -74 > lru_gen_init_pgdat 196 82 -114 > try_to_inc_max_seq.isra 2897 1578 -1319 > Total: Before=101095, After=101868, chg +0.76% > $ > > > Tested-by: Donet Tom <donettom@xxxxxxxxxxxxxxxxxx> Thanks! Acked-by: Yu Zhao <yuzhao@xxxxxxxxxx>