At 2021-11-02 18:20:51, "Thomas Bogendoerfer" <tsbogend@xxxxxxxxxxxxxxxx> wrote: >On Tue, Nov 02, 2021 at 04:24:37PM +0800, Zhaolong Zhang wrote: >> ltp test futex_wake04 without THP enabled leads to below bt: >> [<ffffffff80a03728>] BUG+0x0/0x8 >> [<ffffffff80a0624c>] internal_get_user_pages_fast+0x81c/0x820 >> [<ffffffff8093ac18>] get_futex_key+0xa0/0x480 >> [<ffffffff8093b074>] futex_wait_setup+0x7c/0x1a8 >> [<ffffffff8093b2c0>] futex_wait+0x120/0x228 >> [<ffffffff8093dbe8>] do_futex+0x140/0xbd8 >> [<ffffffff8093e78c>] sys_futex+0x10c/0x1c0 >> [<ffffffff808703d0>] syscall_common+0x34/0x58 >> >> Move pmd_write() and pmd_page() from TRANSPARENT_HUGEPAGE scope to >> MIPS_HUGE_TLB_SUPPORT scope, because both THP and HUGETLB will need >> them. >> >> Signed-off-by: Zhaolong Zhang <zhangzl2013@xxxxxxx> >> --- >> arch/mips/include/asm/pgtable.h | 40 +++++++++++++++++---------------- >> 1 file changed, 21 insertions(+), 19 deletions(-) > >applied to mips-next. > >> >> diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h >> index 804889b70965..1fcf4be5cd20 100644 >> --- a/arch/mips/include/asm/pgtable.h >> +++ b/arch/mips/include/asm/pgtable.h >> @@ -86,10 +86,12 @@ extern void paging_init(void); >> */ >> #define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd)) >> >> +#ifndef CONFIG_MIPS_HUGE_TLB_SUPPORT >> #define __pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) >> #ifndef CONFIG_TRANSPARENT_HUGEPAGE >> #define pmd_page(pmd) __pmd_page(pmd) >> #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ >> +#endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */ > >While applying I've simplified that hunk to > >-#define __pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) >-#ifndef CONFIG_TRANSPARENT_HUGEPAGE >-#define pmd_page(pmd) __pmd_page(pmd) >-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ >+#ifndef CONFIG_MIPS_HUGE_TLB_SUPPORT >+#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) >+#endif /* CONFIG_MIPS_HUGE_TLB_SUPPORT */ > It is much better. Thanks for your kind reply. Regards, Zhaolong >Thomas. > >-- >Crap can work. Given enough thrust pigs will fly, but it's not necessarily a >good idea. [ RFC1925, 2.3 ]