This series adds a test validation for architecture exported page table helpers. Patch in the series add basic transformation tests at various level of the page table.
This test was originally suggested by Catalin during arm64 THP migration RFC discussion earlier. Going forward it can include more specific tests with respect to various generic MM functions like THP, HugeTLB etc and platform specific tests. https://lore.kernel.org/linux-mm/[email protected]/ Issues: Does not build on arm64 as a module and fails with following errors. This is primarily caused by set_pgd() called from pgd_clear() and pgd_populate(). ERROR: "set_swapper_pgd" [lib/test_arch_pgtable.ko] undefined! ERROR: "swapper_pg_dir" [lib/test_arch_pgtable.ko] undefined! These symbols need to be visible for driver usage or will have to disable loadable module option for this test on arm64 platform. Testing: Build and boot tested on arm64 and x86 platforms. While arm64 clears all these tests, following errors were reported on x86. 1. WARN_ON(pud_bad(pud)) in pud_populate_tests() 2. WARN_ON(p4d_bad(p4d)) in p4d_populate_tests() I would really appreciate if folks can help validate this test in other platforms and report back problems if any. Suggestions, comments and inputs welcome. Thank you. Cc: Andrew Morton <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Mark Brown <[email protected]> Cc: Steven Price <[email protected]> Cc: Ard Biesheuvel <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Kees Cook <[email protected]> Cc: Tetsuo Handa <[email protected]> Cc: Matthew Wilcox <[email protected]> Cc: Sri Krishna chowdary <[email protected]> Cc: Dave Hansen <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Anshuman Khandual (1): mm/pgtable/debug: Add test validating architecture page table helpers lib/Kconfig.debug | 14 +++ lib/Makefile | 1 + lib/test_arch_pgtable.c | 290 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 305 insertions(+) create mode 100644 lib/test_arch_pgtable.c -- 2.7.4

