On 10/29/2019 04:01 PM, Qian Cai wrote: > > >> On Oct 28, 2019, at 1:29 AM, Anshuman Khandual <Anshuman.Khandual@xxxxxxx> 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. > > This looks like a perfect candidate to streamline with the new kunit framework, no? I have not been following the kunit test framework. But being highly dependent on existing MM accessors (generic or platform) and very much page table modification centric, mm/ is the best place for this test IMHO. It is now also part of DEBUG_VM set of tests. Probably in future all existing MM tests (mm/ or lib/) might move to kunit framework but for now it should remain with DEBUG_VM set of tests.