diff mbox series

[v5,9/9] powerpc/mm: Enable move pmd/pud

Message ID 20210422054323.150993-10-aneesh.kumar@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series Speedup mremap on ppc64 | expand

Commit Message

Aneesh Kumar K.V April 22, 2021, 5:43 a.m. UTC
mremap HAVE_MOVE_PMD/PUD optimization time comparison for 1GB region:
1GB mremap - Source PTE-aligned, Destination PTE-aligned
  mremap time:      1127034ns
1GB mremap - Source PMD-aligned, Destination PMD-aligned
  mremap time:       508817ns
1GB mremap - Source PUD-aligned, Destination PUD-aligned
  mremap time:        23046ns

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
---
 arch/powerpc/platforms/Kconfig.cputype | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andrew Morton May 11, 2021, 10:19 p.m. UTC | #1
On Thu, 22 Apr 2021 11:13:23 +0530 "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> wrote:

> mremap HAVE_MOVE_PMD/PUD optimization time comparison for 1GB region:
> 1GB mremap - Source PTE-aligned, Destination PTE-aligned
>   mremap time:      1127034ns
> 1GB mremap - Source PMD-aligned, Destination PMD-aligned
>   mremap time:       508817ns
> 1GB mremap - Source PUD-aligned, Destination PUD-aligned
>   mremap time:        23046ns

Well that's nice.

How significant is this in practice?  How common is it for applications
to successfully align the region?  Do real-world applications actually
benefit from this?

Are there userspace libraries (malloc() etc) which should be reworked
to fully exploit this?
diff mbox series

Patch

diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index 3ce907523b1e..2e666e569fdf 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -97,6 +97,8 @@  config PPC_BOOK3S_64
 	select PPC_HAVE_PMU_SUPPORT
 	select SYS_SUPPORTS_HUGETLBFS
 	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
+	select HAVE_MOVE_PMD
+	select HAVE_MOVE_PUD
 	select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
 	select ARCH_SUPPORTS_NUMA_BALANCING
 	select IRQ_WORK