Re: [PATCH -mm -v4 01/21] mm, THP, swap: Enable PMD swap operations for CONFIG_THP_SWAP

From: Dave Hansen
Date: Mon Jul 09 2018 - 11:59:37 EST


On 06/21/2018 08:51 PM, Huang, Ying wrote:
> From: Huang Ying <ying.huang@xxxxxxxxx>
>
> Previously, the PMD swap operations are only enabled for
> CONFIG_ARCH_ENABLE_THP_MIGRATION. Because they are only used by the
> THP migration support. We will support PMD swap mapping to the huge
> swap cluster and swapin the THP as a whole. That will be enabled via
> CONFIG_THP_SWAP and needs these PMD swap operations. So enable the
> PMD swap operations for CONFIG_THP_SWAP too.

This commit message kinda skirts around the real reasons for this patch.
Shouldn't we just say something like:

Currently, "swap entries" in the page tables are used for a
number of things outside of actual swap, like page migration.
We support THP/PMD "swap entries" for page migration currently
and the functions behind this are tied to page migration's
config option (CONFIG_ARCH_ENABLE_THP_MIGRATION).

But, we also need them for THP swap.
...

It would also be nice to explain a bit why you are moving code around.

Would this look any better if we made a Kconfig option:

config HAVE_THP_SWAP_ENTRIES
def_bool n
# "Swap entries" in the page tables are used
# both for migration and actual swap.
depends on THP_SWAP || ARCH_ENABLE_THP_MIGRATION

You logically talked about this need for PMD swap operations in your
commit message, so I think it makes sense to codify that in a single
place where it can be coherently explained.