• Kalesh Singh's avatar
    arm64: mremap speedup - enable HAVE_MOVE_PUD · f5308c89
    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 19x improvement in performance on arm64.  (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 arm64. All times are in nanoseconds.
    
      Control          HAVE_MOVE_PUD
    
      1247761          74271
      1219896          46771
      1094792          59687
      1227760          48385
      1043698          76666
      1101771          50365
      1159896          52500
      1143594          75261
      1025833          61354
      1078125          48697
    
      1134312.6        59395.7    <-- Mean time in nanoseconds
    
    A 1GB mremap completion time drops from ~1.1 milliseconds to ~59
    microseconds on arm64.  (~19x speed up).
    
    Link: https://lkml.kernel.org/r/20201014005320.2233162-5-kaleshsingh@google.comSigned-off-by: default avatarKalesh Singh <kaleshsingh@google.com>
    Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Cc: Anshuman Khandual <anshuman.khandual@arm.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Geffon <bgeffon@google.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: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.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: Thomas Gleixner <tglx@linutronix.de>
    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>
    f5308c89
Kconfig 63.5 KB