All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalesh Singh <kaleshsingh@google.com>
To: unlisted-recipients:; (no To-header on input)
Cc: surenb@google.com, minchan@google.com, joelaf@google.com,
	lokeshgidra@google.com, kaleshsingh@google.com,
	kernel-team@android.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Shuah Khan <shuah@kernel.org>, Kees Cook <keescook@chromium.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Sami Tolvanen <samitolvanen@google.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Hassan Naveed <hnaveed@wavecomp.com>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Mark Brown <broonie@kernel.org>, Mike Rapoport <rppt@kernel.org>,
	Gavin Shan <gshan@redhat.com>, Zhenyu Ye <yezhenyu2@huawei.com>,
	Steven Price <steven.price@arm.com>, Jia He <justin.he@arm.com>,
	John Hubbard <jhubbard@nvidia.com>,
	William Kucharski <william.kucharski@oracle.com>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Ralph Campbell <rcampbell@nvidia.com>,
	Mina Almasry <almasrymina@google.com>,
	Ram Pai <linuxram@us.ibm.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Sandipan Das <sandipan@linux.ibm.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Brian Geffon <bgeffon@google.com>,
	Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
	SeongJae Park <sjpark@amazon.de>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org,
	linux-kselftest@vger.kernel.org
Subject: [PATCH v2 0/6] Speed up mremap on large regions
Date: Fri,  2 Oct 2020 16:20:45 +0000	[thread overview]
Message-ID: <20201002162101.665549-1-kaleshsingh@google.com> (raw)

This version 2 of the mremap speed up patches previously posted at:
https://lore.kernel.org/r/20200930222130.4175584-1-kaleshsingh@google.com

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.

Changes in v2:
  - Reduce mremap_test time by only validating a configurable
    threshold of the remapped region, as per John.
  - Use a random pattern for mremap validation. Provide pattern
    seed in test output, as per John.
  - Moved set_pud_at() to separate patch, per Kirill.
  - Use switch() instead of ifs in move_pgt_entry(), per Kirill.
  - Update commit message with description of Android
    garbage collector use case for HAVE_MOVE_PUD, as per Joel.
  - Fix build test error reported by kernel test robot in [1].

[1] https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org/thread/CKPGL4FH4NG7TGH2CVYX2UX76L25BTA3/

Kalesh Singh (6):
  kselftests: vm: Add mremap tests
  arm64: mremap speedup - Enable HAVE_MOVE_PMD
  mm: Speedup mremap on 1GB or larger regions
  arm64: Add set_pud_at() functions
  arm64: mremap speedup - Enable HAVE_MOVE_PUD
  x86: mremap speedup - Enable HAVE_MOVE_PUD

 arch/Kconfig                             |   7 +
 arch/arm64/Kconfig                       |   2 +
 arch/arm64/include/asm/pgtable.h         |   1 +
 arch/x86/Kconfig                         |   1 +
 mm/mremap.c                              | 220 +++++++++++++--
 tools/testing/selftests/vm/.gitignore    |   1 +
 tools/testing/selftests/vm/Makefile      |   1 +
 tools/testing/selftests/vm/mremap_test.c | 333 +++++++++++++++++++++++
 tools/testing/selftests/vm/run_vmtests   |  11 +
 9 files changed, 547 insertions(+), 30 deletions(-)
 create mode 100644 tools/testing/selftests/vm/mremap_test.c


base-commit: 472e5b056f000a778abb41f1e443de58eb259783
-- 
2.28.0.806.g8561365e88-goog


WARNING: multiple messages have this Message-ID (diff)
From: Kalesh Singh <kaleshsingh@google.com>
Cc: surenb@google.com, minchan@google.com, joelaf@google.com,
	 lokeshgidra@google.com, kaleshsingh@google.com,
	kernel-team@android.com,
	 Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	 Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	x86@kernel.org,  "H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Shuah Khan <shuah@kernel.org>,  Kees Cook <keescook@chromium.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	 Peter Zijlstra <peterz@infradead.org>,
	Arnd Bergmann <arnd@arndb.de>,
	 Masahiro Yamada <masahiroy@kernel.org>,
	Sami Tolvanen <samitolvanen@google.com>,
	 Frederic Weisbecker <frederic@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	 Hassan Naveed <hnaveed@wavecomp.com>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	 Mark Rutland <mark.rutland@arm.com>,
	Mark Brown <broonie@kernel.org>,  Mike Rapoport <rppt@kernel.org>,
	Gavin Shan <gshan@redhat.com>, Zhenyu Ye <yezhenyu2@huawei.com>,
	 Steven Price <steven.price@arm.com>, Jia He <justin.he@arm.com>,
	 John Hubbard <jhubbard@nvidia.com>,
	William Kucharski <william.kucharski@oracle.com>,
	 Mike Kravetz <mike.kravetz@oracle.com>,
	Ralph Campbell <rcampbell@nvidia.com>,
	 Mina Almasry <almasrymina@google.com>,
	Ram Pai <linuxram@us.ibm.com>,
	 "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Sandipan Das <sandipan@linux.ibm.com>,
	 Dave Hansen <dave.hansen@intel.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	 Brian Geffon <bgeffon@google.com>,
	Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
	 SeongJae Park <sjpark@amazon.de>,
	linux-kernel@vger.kernel.org,
	 linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org,
	 linux-kselftest@vger.kernel.org
Subject: [PATCH v2 0/6] Speed up mremap on large regions
Date: Fri,  2 Oct 2020 16:20:45 +0000	[thread overview]
Message-ID: <20201002162101.665549-1-kaleshsingh@google.com> (raw)

This version 2 of the mremap speed up patches previously posted at:
https://lore.kernel.org/r/20200930222130.4175584-1-kaleshsingh@google.com

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.

Changes in v2:
  - Reduce mremap_test time by only validating a configurable
    threshold of the remapped region, as per John.
  - Use a random pattern for mremap validation. Provide pattern
    seed in test output, as per John.
  - Moved set_pud_at() to separate patch, per Kirill.
  - Use switch() instead of ifs in move_pgt_entry(), per Kirill.
  - Update commit message with description of Android
    garbage collector use case for HAVE_MOVE_PUD, as per Joel.
  - Fix build test error reported by kernel test robot in [1].

[1] https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org/thread/CKPGL4FH4NG7TGH2CVYX2UX76L25BTA3/

Kalesh Singh (6):
  kselftests: vm: Add mremap tests
  arm64: mremap speedup - Enable HAVE_MOVE_PMD
  mm: Speedup mremap on 1GB or larger regions
  arm64: Add set_pud_at() functions
  arm64: mremap speedup - Enable HAVE_MOVE_PUD
  x86: mremap speedup - Enable HAVE_MOVE_PUD

 arch/Kconfig                             |   7 +
 arch/arm64/Kconfig                       |   2 +
 arch/arm64/include/asm/pgtable.h         |   1 +
 arch/x86/Kconfig                         |   1 +
 mm/mremap.c                              | 220 +++++++++++++--
 tools/testing/selftests/vm/.gitignore    |   1 +
 tools/testing/selftests/vm/Makefile      |   1 +
 tools/testing/selftests/vm/mremap_test.c | 333 +++++++++++++++++++++++
 tools/testing/selftests/vm/run_vmtests   |  11 +
 9 files changed, 547 insertions(+), 30 deletions(-)
 create mode 100644 tools/testing/selftests/vm/mremap_test.c


base-commit: 472e5b056f000a778abb41f1e443de58eb259783
-- 
2.28.0.806.g8561365e88-goog



WARNING: multiple messages have this Message-ID (diff)
From: Kalesh Singh <kaleshsingh@google.com>
Cc: joelaf@google.com, Mark Rutland <mark.rutland@arm.com>,
	Gavin Shan <gshan@redhat.com>, Brian Geffon <bgeffon@google.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	kaleshsingh@google.com, Ram Pai <linuxram@us.ibm.com>,
	Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
	linux-mm@kvack.org,
	William Kucharski <william.kucharski@oracle.com>,
	Will Deacon <will@kernel.org>,
	lokeshgidra@google.com, linux-kselftest@vger.kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Christian Brauner <christian.brauner@ubuntu.com>,
	Shuah Khan <shuah@kernel.org>,
	Mina Almasry <almasrymina@google.com>, Jia He <justin.he@arm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	x86@kernel.org, Krzysztof Kozlowski <krzk@kernel.org>,
	Steven Price <steven.price@arm.com>,
	Ingo Molnar <mingo@redhat.com>,
	Sami Tolvanen <samitolvanen@google.com>,
	kernel-team@android.com, Hassan Naveed <hnaveed@wavecomp.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Ralph Campbell <rcampbell@nvidia.com>,
	Kees Cook <keescook@chromium.org>,
	minchan@google.com, Zhenyu Ye <yezhenyu2@huawei.com>,
	Sandipan Das <sandipan@linux.ibm.com>,
	John Hubbard <jhubbard@nvidia.com>,
	Frederic Weisbecker <frederic@kernel.org>,
	Mark Brown <broonie@kernel.org>, Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	surenb@google.com, linux-arm-kernel@lists.infradead.org,
	SeongJae Park <sjpark@amazon.de>,
	Dave Hansen <dave.hansen@intel.com>,
	linux-kernel@vger.kernel.org,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mike Rapoport <rppt@kernel.org>,
	Mike Kravetz <mike.kravetz@oracle.com>
Subject: [PATCH v2 0/6] Speed up mremap on large regions
Date: Fri,  2 Oct 2020 16:20:45 +0000	[thread overview]
Message-ID: <20201002162101.665549-1-kaleshsingh@google.com> (raw)

This version 2 of the mremap speed up patches previously posted at:
https://lore.kernel.org/r/20200930222130.4175584-1-kaleshsingh@google.com

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.

Changes in v2:
  - Reduce mremap_test time by only validating a configurable
    threshold of the remapped region, as per John.
  - Use a random pattern for mremap validation. Provide pattern
    seed in test output, as per John.
  - Moved set_pud_at() to separate patch, per Kirill.
  - Use switch() instead of ifs in move_pgt_entry(), per Kirill.
  - Update commit message with description of Android
    garbage collector use case for HAVE_MOVE_PUD, as per Joel.
  - Fix build test error reported by kernel test robot in [1].

[1] https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org/thread/CKPGL4FH4NG7TGH2CVYX2UX76L25BTA3/

Kalesh Singh (6):
  kselftests: vm: Add mremap tests
  arm64: mremap speedup - Enable HAVE_MOVE_PMD
  mm: Speedup mremap on 1GB or larger regions
  arm64: Add set_pud_at() functions
  arm64: mremap speedup - Enable HAVE_MOVE_PUD
  x86: mremap speedup - Enable HAVE_MOVE_PUD

 arch/Kconfig                             |   7 +
 arch/arm64/Kconfig                       |   2 +
 arch/arm64/include/asm/pgtable.h         |   1 +
 arch/x86/Kconfig                         |   1 +
 mm/mremap.c                              | 220 +++++++++++++--
 tools/testing/selftests/vm/.gitignore    |   1 +
 tools/testing/selftests/vm/Makefile      |   1 +
 tools/testing/selftests/vm/mremap_test.c | 333 +++++++++++++++++++++++
 tools/testing/selftests/vm/run_vmtests   |  11 +
 9 files changed, 547 insertions(+), 30 deletions(-)
 create mode 100644 tools/testing/selftests/vm/mremap_test.c


base-commit: 472e5b056f000a778abb41f1e443de58eb259783
-- 
2.28.0.806.g8561365e88-goog


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2020-10-02 16:21 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-02 16:20 Kalesh Singh [this message]
2020-10-02 16:20 ` [PATCH v2 0/6] Speed up mremap on large regions Kalesh Singh
2020-10-02 16:20 ` Kalesh Singh
2020-10-02 16:20 ` [PATCH v2 1/6] kselftests: vm: Add mremap tests Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-03  7:13   ` John Hubbard
2020-10-03 20:01     ` Kalesh Singh
2020-10-03 20:01       ` Kalesh Singh
2020-10-03 22:31       ` John Hubbard
2020-10-02 16:20 ` [PATCH v2 2/6] arm64: mremap speedup - Enable HAVE_MOVE_PMD Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:20 ` [PATCH v2 3/6] mm: Speedup mremap on 1GB or larger regions Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:51   ` Kirill A. Shutemov
2020-10-02 16:51     ` Kirill A. Shutemov
2020-10-02 22:08     ` Kalesh Singh
2020-10-02 22:08       ` Kalesh Singh
2020-10-02 22:08       ` Kalesh Singh
2020-10-03  0:21       ` Kalesh Singh
2020-10-03  0:21         ` Kalesh Singh
2020-10-03  0:21         ` Kalesh Singh
2020-10-02 16:20 ` [PATCH v2 4/6] arm64: Add set_pud_at() function Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:52   ` Kirill A. Shutemov
2020-10-02 16:52     ` Kirill A. Shutemov
2020-10-02 22:11     ` Kalesh Singh
2020-10-02 22:11       ` Kalesh Singh
2020-10-02 22:11       ` Kalesh Singh
2020-10-02 16:20 ` [PATCH v2 5/6] arm64: mremap speedup - Enable HAVE_MOVE_PUD Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:20 ` [PATCH v2 6/6] x86: " Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh
2020-10-02 16:20   ` Kalesh Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201002162101.665549-1-kaleshsingh@google.com \
    --to=kaleshsingh@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=almasrymina@google.com \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=arnd@arndb.de \
    --cc=bgeffon@google.com \
    --cc=bp@alien8.de \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=christian.brauner@ubuntu.com \
    --cc=dave.hansen@intel.com \
    --cc=frederic@kernel.org \
    --cc=gshan@redhat.com \
    --cc=hnaveed@wavecomp.com \
    --cc=hpa@zytor.com \
    --cc=jhubbard@nvidia.com \
    --cc=joelaf@google.com \
    --cc=justin.he@arm.com \
    --cc=kamalesh@linux.vnet.ibm.com \
    --cc=keescook@chromium.org \
    --cc=kernel-team@android.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=krzk@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxram@us.ibm.com \
    --cc=lokeshgidra@google.com \
    --cc=mark.rutland@arm.com \
    --cc=masahiroy@kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=minchan@google.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rcampbell@nvidia.com \
    --cc=rppt@kernel.org \
    --cc=samitolvanen@google.com \
    --cc=sandipan@linux.ibm.com \
    --cc=shuah@kernel.org \
    --cc=sjpark@amazon.de \
    --cc=steven.price@arm.com \
    --cc=surenb@google.com \
    --cc=tglx@linutronix.de \
    --cc=will@kernel.org \
    --cc=william.kucharski@oracle.com \
    --cc=x86@kernel.org \
    --cc=yezhenyu2@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.