[PATCH V3 0/4] mm/debug_vm_pgtable: Add some more tests

Anshuman Khandual anshuman.khandual at arm.com
Thu Jul 2 23:59:05 EDT 2020



On 07/01/2020 03:02 AM, Vineet Gupta wrote:
> On 6/29/20 8:53 PM, Anshuman Khandual wrote:
>>
>>
>> On 06/24/2020 08:43 AM, Anshuman Khandual wrote:
>>>
>>>
>>> On 06/15/2020 09:07 AM, Anshuman Khandual wrote:
>>>> This series adds some more arch page table helper validation tests which
>>>> are related to core and advanced memory functions. This also creates a
>>>> documentation, enlisting expected semantics for all page table helpers as
>>>> suggested by Mike Rapoport previously (https://lkml.org/lkml/2020/1/30/40).
>>>>
>>>> There are many TRANSPARENT_HUGEPAGE and ARCH_HAS_TRANSPARENT_HUGEPAGE_PUD
>>>> ifdefs scattered across the test. But consolidating all the fallback stubs
>>>> is not very straight forward because ARCH_HAS_TRANSPARENT_HUGEPAGE_PUD is
>>>> not explicitly dependent on ARCH_HAS_TRANSPARENT_HUGEPAGE.
>>>>
>>>> Tested on arm64, x86 platforms but only build tested on all other enabled
>>>> platforms through ARCH_HAS_DEBUG_VM_PGTABLE i.e powerpc, arc, s390. The
>>>> following failure on arm64 still exists which was mentioned previously. It
>>>> will be fixed with the upcoming THP migration on arm64 enablement series.
>>>>
>>>> WARNING .... mm/debug_vm_pgtable.c:860 debug_vm_pgtable+0x940/0xa54
>>>> WARN_ON(!pmd_present(pmd_mkinvalid(pmd_mkhuge(pmd))))
>>>>
>>>> This series is based on v5.8-rc1.
>>>>
>>>> Changes in V3:
>>>>
>>>> - Replaced HAVE_ARCH_SOFT_DIRTY with MEM_SOFT_DIRTY
>>>> - Added HAVE_ARCH_HUGE_VMAP checks in pxx_huge_tests() per Gerald
>>>> - Updated documentation for pmd_thp_tests() per Zi Yan
>>>> - Replaced READ_ONCE() with huge_ptep_get() per Gerald
>>>> - Added pte_mkhuge() and masking with PMD_MASK per Gerald
>>>> - Replaced pte_same() with holding pfn check in pxx_swap_tests()
>>>> - Added documentation for all (#ifdef #else #endif) per Gerald
>>>> - Updated pmd_protnone_tests() per Gerald
>>>> - Updated HugeTLB PTE creation in hugetlb_advanced_tests() per Gerald
>>>> - Replaced [pmd|pud]_mknotpresent() with [pmd|pud]_mkinvalid()
>>>> - Added has_transparent_hugepage() check for PMD and PUD tests
>>>> - Added a patch which debug prints all individual tests being executed
>>>> - Updated documentation for renamed [pmd|pud]_mkinvalid() helpers
>>>
>>> Hello Gerald/Christophe/Vineet,
>>>
>>> It would be really great if you could give this series a quick test
>>> on s390/ppc/arc platforms respectively. Thank you.
>>
>> Thanks Alexander, Gerald and Christophe for testing this out on s390
>> and ppc32 platforms. Probably Vineet and Qian (any other volunteers)
>> could help us with arc and ppc64 platforms, which I would appreciate.
> 
> Tested-by: Vineet Gupta <vgupta at synopsys.com>
> 
> Apologies for the delay in getting to this. Works fine on ARC
> 
> I have following enabled:
> 
> # CONFIG_DEBUG_VM_RB is not set
> # CONFIG_DEBUG_VM_PGFLAGS is not set
> CONFIG_DEBUG_VM_PGTABLE=y
> 
> And this boots fine
> 
> NET: Registered protocol family 17
> NET: Registered protocol family 15
> debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table
> helpers
> Warning: unable to open an initial console.
> Freeing unused kernel memory: 18840K
> This architecture does not have kernel memory protection.
> Run /init as init process
>   with arguments:
>     /init
>   with environment:
>     HOME=/
>     TERM=linux
> ...
> ***********************************************************************
> 			Welcome to ARCLinux
> ***********************************************************************
> [ARCLinux]#
> 

Thanks for testing this Vineet, really appreciate it.



More information about the linux-snps-arc mailing list