Hi Anshuman, On 11/4/19 4:00 PM, Anshuman Khandual wrote: > On 10/28/2019 10:59 AM, Anshuman Khandual wrote: >> This adds tests which will validate architecture page table helpers and >> other accessors in their compliance with expected generic MM semantics. >> This will help various architectures in validating changes to existing >> page table helpers or addition of new ones. >> >> This test covers basic page table entry transformations including but not >> limited to old, young, dirty, clean, write, write protect etc at various >> level along with populating intermediate entries with next page table page >> and validating them. >> >> Test page table pages are allocated from system memory with required size >> and alignments. The mapped pfns at page table levels are derived from a >> real pfn representing a valid kernel text symbol. This test gets called >> right after page_alloc_init_late(). >> >> This gets build and run when CONFIG_DEBUG_VM_PGTABLE is selected along with >> CONFIG_VM_DEBUG. Architectures willing to subscribe this test also need to >> select CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE which for now is limited to x86 and >> arm64. Going forward, other architectures too can enable this after fixing >> build or runtime problems (if any) with their page table helpers. >> >> Folks interested in making sure that a given platform's page table helpers >> conform to expected generic MM semantics should enable the above config >> which will just trigger this test during boot. Any non conformity here will >> be reported as an warning which would need to be fixed. This test will help >> catch any changes to the agreed upon semantics expected from generic MM and >> enable platforms to accommodate it thereafter. >> I tried enabling this on ARC and ran into a build issue ../mm/debug_vm_pgtable.c: In function ‘pmd_basic_tests’: ../mm/debug_vm_pgtable.c:73:14: error: implicit declaration of function ‘pfn_pmd’; did you mean ‘pfn_pte’? [-Werror=implicit-function-declaration] pmd_t pmd = pfn_pmd(pfn, prot); ^~~~~~~ The reason being THP was not enabled (although ARC supports THP) - for the combination below CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y # CONFIG_TRANSPARENT_HUGEPAGE is not set I think you need to use latter for guarding pmd_basic_tests() Other than that the tests pass for !THP and THP too. So once fixed, you could enable that for ARC as well Thx for doing this. -Vineet