• Kalesh Singh's avatar
    mm: speedup mremap on 1GB or larger regions · c49dd340
    Kalesh Singh authored
    Android needs to move large memory regions for garbage collection.  The GC
    requires moving physical pages of multi-gigabyte heap using mremap.
    During this move, the application threads have to be paused for
    correctness.  It is critical to keep this pause as short as possible to
    avoid jitters during user interaction.
    
    Optimize mremap for >= 1GB-sized regions by moving at the PUD/PGD level if
    the source and destination addresses are PUD-aligned.  For
    CONFIG_PGTABLE_LEVELS == 3, moving at the PUD level in effect moves PGD
    entries, since the PUD entry is “folded back” onto the PGD entry.  Add
    HAVE_MOVE_PUD so that architectures where moving at the PUD level isn't
    supported/tested can turn this off by not selecting the config.
    
    Link: https://lkml.kernel.org/r/20201014005320.2233162-4-kaleshsingh@google.comSigned-off-by: default avatarKalesh Singh <kaleshsingh@google.com>
    Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Reported-by: default avatarkernel test robot <lkp@intel.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: Borislav Petkov <bp@alien8.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: "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: 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>
    c49dd340
Kconfig 30.7 KB