Re: [RFC 00/11] THP swap: Delay splitting THP during swapping out

From: Huang\, Ying
Date: Tue Aug 09 2016 - 13:25:46 EST


Hi, All,

"Huang, Ying" <ying.huang@xxxxxxxxx> writes:

> From: Huang Ying <ying.huang@xxxxxxxxx>
>
> This patchset is based on 8/4 head of mmotm/master.
>
> This is the first step for Transparent Huge Page (THP) swap support.
> The plan is to delaying splitting THP step by step and avoid splitting
> THP finally during THP swapping out and swapping in.
>
> The advantages of THP swap support are:
>
> - Batch swap operations for THP to reduce lock acquiring/releasing,
> including allocating/freeing swap space, adding/deleting to/from swap
> cache, and writing/reading swap space, etc.
>
> - THP swap space read/write will be 2M sequence IO. It is particularly
> helpful for swap read, which usually are 4k random IO.
>
> - It will help memory fragmentation, especially when THP is heavily used
> by the applications. 2M continuous pages will be free up after THP
> swapping out.
>
> As the first step, in this patchset, the splitting huge page is
> delayed from almost the first step of swapping out to after allocating
> the swap space for THP and adding the THP into swap cache. This will
> reduce lock acquiring/releasing for locks used for swap space and swap
> cache management.

For this patchset posting,

In general, I want to check the basic design with memory management
subsystem maintainers and developers.

For [RFC 01/11] swap: Add swap_cluster_list, it is a cleanup patch. And
I think it should be useful independently.

I am not very confident about the memcg part, that is

[RFC 03/11] mm, memcg: Add swap_cgroup_iter iterator
[RFC 04/11] mm, memcg: Support to charge/uncharge multiple swap entries

Please help me to check it.

Best Regards,
Huang, Ying