On Fri, Jun 23, 2023 at 01:53:43PM -0700, Hugh Dickins wrote: > > Anyway, that is just another option and I will try your patch. > > Thank you, please do, if you have the time: my series does need some > kind of s390 solution, depending on whatever s390 has in its tree at > the time: for now I should at least be showing the 13/12 (preferably > known to build and appearing to work!), even if all it does is help > people to say "no, that's too much". Hi Hugh, I took a bit different approach to run it: with and withough HH bits in play. IOW (if I am not mistaken) without the three patch serieses these two patches on top of v6.4-rc5 alone still should manage page allocation, as if pte_free_defer() does not exist/never get called: s390: add pte_free_defer() for pgtables sharing page prospective 13/12 s390 pgtable_list patch These patches appear to work (aka survive LTP MM tests). The next step would be to try the three serieses on top of v6.4-rc5 plus patch 13/12, as you intended: https://lore.kernel.org/linux-mm/77a5d8c-406b-7068-4f17-23b7ac53bc83@xxxxxxxxxx/ https://lore.kernel.org/linux-mm/68a97fbe-5c1e-7ac6-72c-7b9c6290b370@xxxxxxxxxx/ https://lore.kernel.org/linux-mm/54cb04f-3762-987f-8294-91dafd8ebfb0@xxxxxxxxxx https://lore.kernel.org/r/a69a26c0-ec93-3ad-a443-6655b5e49df2@xxxxxxxxxx I had to manually tweak this one with a fuzz in order to circumvent 'git am' error: [PATCH v2 28/32] mm/memory: allow pte_offset_map[_lock]() to fail: fix But in the end it still does not compile for me: mm/memory.c: In function ‘zap_pmd_range’: mm/memory.c:1561:21: error: implicit declaration of function ‘pmd_none_or_trans_huge_or_clear_bad’ [-Werror=implicit-function-declaration] 1561 | if (pmd_none_or_trans_huge_or_clear_bad(pmd)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC fs/btrfs/dev-replace.o In file included from ./include/linux/build_bug.h:5, from ./include/linux/container_of.h:5, from ./include/linux/list.h:5, from ./include/linux/smp.h:12, from ./include/linux/kernel_stat.h:5, from mm/memory.c:42: mm/memory.c: In function ‘do_anonymous_page’: mm/memory.c:4058:22: error: implicit declaration of function ‘pmd_trans_unstable’; did you mean ‘pud_trans_unstable’? [-Werror=implicit-function-declaration] 4058 | if (unlikely(pmd_trans_unstable(vmf->pmd))) | ^~~~~~~~~~~~~~~~~~ ./include/linux/compiler.h:77:45: note: in definition of macro ‘unlikely’ 77 | # define unlikely(x) __builtin_expect(!!(x), 0) | ^ CC fs/xfs/xfs_iops.o mm/memory.c: In function ‘finish_fault’: mm/memory.c:4388:13: error: implicit declaration of function ‘pmd_devmap_trans_unstable’; did you mean ‘pud_trans_unstable’? [-Werror=implicit-function-declaration] 4388 | if (pmd_devmap_trans_unstable(vmf->pmd)) | ^~~~~~~~~~~~~~~~~~~~~~~~~ | pud_trans_unstable Could you please let me know if I am missing something? Thanks! > Hugh