• Kalesh Singh's avatar
    kselftests: vm: add mremap tests · 7df66625
    Kalesh Singh authored
    Patch series "Speed up mremap on large regions", v4.
    
    mremap time can be optimized by moving entries at the PMD/PUD level if the
    source and destination addresses are PMD/PUD-aligned and PMD/PUD-sized.
    Enable moving at the PMD and PUD levels on arm64 and x86.  Other
    architectures where this type of move is supported and known to be safe
    can also opt-in to these optimizations by enabling HAVE_MOVE_PMD and
    HAVE_MOVE_PUD.
    
    Observed Performance Improvements for remapping a PUD-aligned 1GB-sized
    region on x86 and arm64:
    
        - HAVE_MOVE_PMD is already enabled on x86 : N/A
        - Enabling HAVE_MOVE_PUD on x86   : ~13x speed up
    
        - Enabling HAVE_MOVE_PMD on arm64 : ~ 8x speed up
        - Enabling HAVE_MOVE_PUD on arm64 : ~19x speed up
    
              Altogether, HAVE_MOVE_PMD and HAVE_MOVE_PUD
              give a total of ~150x speed up on arm64.
    
    This patch (of 4):
    
    Test mremap on regions of various sizes and alignments and validate data
    after remapping.  Also provide total time for remapping the region which
    is useful for performance comparison of the mremap optimizations that move
    pages at the PMD/PUD levels if HAVE_MOVE_PMD and/or HAVE_MOVE_PUD are
    enabled.
    
    Link: https://lkml.kernel.org/r/20201014005320.2233162-1-kaleshsingh@google.com
    Link: https://lkml.kernel.org/r/20201014005320.2233162-2-kaleshsingh@google.comSigned-off-by: default avatarKalesh Singh <kaleshsingh@google.com>
    Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Minchan Kim <minchan@google.com>
    Cc: Lokesh Gidra <lokeshgidra@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Sami Tolvanen <samitolvanen@google.com>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Frederic Weisbecker <frederic@kernel.org>
    Cc: Hassan Naveed <hnaveed@wavecomp.com>
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Anshuman Khandual <anshuman.khandual@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Gavin Shan <gshan@redhat.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Steven Price <steven.price@arm.com>
    Cc: Jia He <justin.he@arm.com>
    Cc: Ram Pai <linuxram@us.ibm.com>
    Cc: Sandipan Das <sandipan@linux.ibm.com>
    Cc: Zi Yan <ziy@nvidia.com>
    Cc: Mina Almasry <almasrymina@google.com>
    Cc: Ralph Campbell <rcampbell@nvidia.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Brian Geffon <bgeffon@google.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: SeongJae Park <sjpark@amazon.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7df66625
mremap_test.c 9.85 KB