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).
Signed-off-by: Kalesh Singh <[email protected]>
Acked-by: Kirill A. Shutemov <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: H. Peter Anvin <[email protected]>
---
Changes in v4:
- Add Kirill's Acked-by.
arch/x86/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 835d93006bd6..e199760d54fc 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -198,6 +198,7 @@ config X86
select HAVE_MIXED_BREAKPOINTS_REGS
select HAVE_MOD_ARCH_SPECIFIC
select HAVE_MOVE_PMD
+ select HAVE_MOVE_PUD
select HAVE_NMI
select HAVE_OPROFILE
select HAVE_OPTPROBES
--
2.28.0.1011.ga647a8990f-goog
* Kalesh Singh <[email protected]> wrote:
> 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).
>
> Signed-off-by: Kalesh Singh <[email protected]>
> Acked-by: Kirill A. Shutemov <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Ingo Molnar <[email protected]>
> Cc: Borislav Petkov <[email protected]>
> Cc: H. Peter Anvin <[email protected]>
Nice!
Assuming it's all correct code:
Acked-by: Ingo Molnar <[email protected]>
Thanks,
Ingo