| From: |
| "Ritesh Harjani (IBM)" <ritesh.list-AT-gmail.com> |
| To: |
| linux-mm-AT-kvack.org |
| Subject: |
| [PATCH v2 0/3] mm, swap: Enable THP SWAP for PowerPC Book3S64 |
| Date: |
| Thu, 11 Jun 2026 15:17:50 +0530 |
| Message-ID: |
| <cover.1781170904.git.ritesh.list@gmail.com> |
| Cc: |
| Madhavan Srinivasan <maddy-AT-linux.ibm.com>, Michael Ellerman <mpe-AT-ellerman.id.au>, Nicholas Piggin <npiggin-AT-gmail.com>, Christophe Leroy <chleroy-AT-kernel.org>, Andrew Morton <akpm-AT-linux-foundation.org>, Chris Li <chrisl-AT-kernel.org>, Kairui Song <kasong-AT-tencent.com>, Kemeng Shi <shikemeng-AT-huaweicloud.com>, Nhat Pham <nphamcs-AT-gmail.com>, Baoquan He <baoquan.he-AT-linux.dev>, Barry Song <baohua-AT-kernel.org>, Youngjun Park <youngjun.park-AT-lge.com>, David Hildenbrand <david-AT-kernel.org>, linuxppc-dev-AT-lists.ozlabs.org, linux-kernel-AT-vger.kernel.org, Sayali Patil <sayalip-AT-linux.ibm.com>, "Ritesh Harjani (IBM)" <ritesh.list-AT-gmail.com> |
| Archive-link: |
| Article |
On PowerPC Book3S64, MMU is selected at runtime, so macros like PMD_SHIFT
are effectively runtime variables in the Book3S64 code. THP swap code uses
these macros for e.g. to size some of its array data structures based on
PMD_ORDER. This patch series makes that usage dependent on the runtime
variable and provides an upper-bound architecture override for cases (e.g.
SWAP_NR_ORDERS), where the runtime conversion is not considered beneficial.
This series increases bandwidth throughput with zram backend for swapout by
around 40-50% with Radix and 100-130% with Hash (Tested by Sayali)
Note that this patch series is based out of linux-next (next-20260608).
RFC -> v2:
==========
1. Send the unused leftovers change in swap.h separately [1]
2. Changed RFC Patch-3 design from runtime SWAP_NR_ORDERS to arch override
(ARCH_MAX_PMD_ORDER) - suggested by Youngjun
3. Dropped RFC tag
[1]: https://lore.kernel.org/linux-mm/68591daf0d679e5a0072d637...
[RFC]: https://lore.kernel.org/linux-mm/cover.1781000840.git.rit...
Ritesh Harjani (IBM) (3):
mm, swap: make SWAPFILE_CLUSTER runtime
mm, swap: allow archs to override SWAP_NR_ORDERS via ARCH_MAX_PMD_ORDER
powerpc: Kconfig: Enable THP_SWAP on Book3S64
arch/powerpc/include/asm/book3s/64/pgtable.h | 7 +++++
arch/powerpc/platforms/Kconfig.cputype | 1 +
include/linux/swap.h | 12 ++++++++-
mm/swap.h | 5 ++--
mm/swap_table.h | 6 ++---
mm/swapfile.c | 27 ++++++++++++++++----
6 files changed, 46 insertions(+), 12 deletions(-)
--
2.39.5