• Kalesh Singh's avatar
    x86: mremap speedup - Enable HAVE_MOVE_PUD · be37c98d
    Kalesh Singh authored
    HAVE_MOVE_PUD enables remapping pages at the PUD level if both the
    source and destination addresses are PUD-aligned.
    
    With HAVE_MOVE_PUD enabled it can be inferred that there is
    approximately a 13x improvement in performance on x86.  (See data
    below).
    
    ------- Test Results ---------
    
    The following results were obtained using a 5.4 kernel, by remapping
    a PUD-aligned, 1GB sized region to a PUD-aligned destination.
    The results from 10 iterations of the test are given below:
    
    Total mremap times for 1GB data on x86. All times are in nanoseconds.
    
      Control        HAVE_MOVE_PUD
    
      180394         15089
      235728         14056
      238931         25741
      187330         13838
      241742         14187
      177925         14778
      182758         14728
      160872         14418
      205813         15107
      245722         13998
    
      205721.5       15594    <-- Mean time in nanoseconds
    
    A 1GB mremap completion time drops from ~205 microseconds
    to ~15 microseconds on x86. (~13x speed up).
    
    Link: https://lkml.kernel.org/r/20201014005320.2233162-6-kaleshsingh@google.comSigned-off-by: default avatarKalesh Singh <kaleshsingh@google.com>
    Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: default avatarIngo Molnar <mingo@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Cc: Anshuman Khandual <anshuman.khandual@arm.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Brian Geffon <bgeffon@google.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Frederic Weisbecker <frederic@kernel.org>
    Cc: Gavin Shan <gshan@redhat.com>
    Cc: Hassan Naveed <hnaveed@wavecomp.com>
    Cc: Jia He <justin.he@arm.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Lokesh Gidra <lokeshgidra@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Mina Almasry <almasrymina@google.com>
    Cc: Minchan Kim <minchan@google.com>
    Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Ralph Campbell <rcampbell@nvidia.com>
    Cc: Ram Pai <linuxram@us.ibm.com>
    Cc: Sami Tolvanen <samitolvanen@google.com>
    Cc: Sandipan Das <sandipan@linux.ibm.com>
    Cc: SeongJae Park <sjpark@amazon.de>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Steven Price <steven.price@arm.com>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Zi Yan <ziy@nvidia.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    be37c98d
Kconfig 93.9 KB