lkml.org 
[lkml]   [2020]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH V12] mm/debug: Add tests validating architecture page table helpers
    On Tue, 28 Jan 2020 06:57:53 +0530
    Anshuman Khandual <anshuman.khandual@arm.com> 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.
    >

    [...]

    >
    > Tested-by: Christophe Leroy <christophe.leroy@c-s.fr> #PPC32

    Tested-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> # s390

    Thanks again for this effort, and for keeping up the spirit against
    all odds and even after 12 iterations :-)

    >
    > diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
    > new file mode 100644
    > index 000000000000..f3f8111edbe3
    > --- /dev/null
    > +++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
    > @@ -0,0 +1,35 @@
    > +#
    > +# Feature name: debug-vm-pgtable
    > +# Kconfig: ARCH_HAS_DEBUG_VM_PGTABLE
    > +# description: arch supports pgtable tests for semantics compliance
    > +#
    > + -----------------------
    > + | arch |status|
    > + -----------------------
    > + | alpha: | TODO |
    > + | arc: | ok |
    > + | arm: | TODO |
    > + | arm64: | ok |
    > + | c6x: | TODO |
    > + | csky: | TODO |
    > + | h8300: | TODO |
    > + | hexagon: | TODO |
    > + | ia64: | TODO |
    > + | m68k: | TODO |
    > + | microblaze: | TODO |
    > + | mips: | TODO |
    > + | nds32: | TODO |
    > + | nios2: | TODO |
    > + | openrisc: | TODO |
    > + | parisc: | TODO |
    > + | powerpc/32: | ok |
    > + | powerpc/64: | TODO |
    > + | riscv: | TODO |
    > + | s390: | TODO |

    s390 is ok now, with my patches included in v5.5-rc1. So you can now add

    --- a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
    +++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt
    @@ -25,7 +25,7 @@
    | powerpc/32: | ok |
    | powerpc/64: | TODO |
    | riscv: | TODO |
    - | s390: | TODO |
    + | s390: | ok |
    | sh: | TODO |
    | sparc: | TODO |
    | um: | TODO |
    --- a/arch/s390/Kconfig
    +++ b/arch/s390/Kconfig
    @@ -59,6 +59,7 @@ config KASAN_SHADOW_OFFSET
    config S390
    def_bool y
    select ARCH_BINFMT_ELF_STATE
    + select ARCH_HAS_DEBUG_VM_PGTABLE
    select ARCH_HAS_DEVMEM_IS_ALLOWED
    select ARCH_HAS_ELF_RANDOMIZE
    select ARCH_HAS_FORTIFY_SOURCE
    \
     
     \ /
      Last update: 2020-01-29 23:21    [W:18.461 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site