Re: [RFC PATCH 0/4] mm: reclaim zbud pages on migration and compaction

From: Bob Liu
Date: Tue Aug 06 2013 - 05:16:55 EST


On 08/06/2013 02:42 PM, Krzysztof Kozlowski wrote:
> Hi,
>
> Currently zbud pages are not movable and they cannot be allocated from CMA
> region. These patches try to address the problem by:
> 1. Adding a new form of reclaim of zbud pages.
> 2. Reclaiming zbud pages during migration and compaction.
> 3. Allocating zbud pages with __GFP_RECLAIMABLE flag.
>
> This reclaim process is different than zbud_reclaim_page(). It acts more
> like swapoff() by trying to unuse pages stored in zbud page and bring
> them back to memory. The standard zbud_reclaim_page() on the other hand
> tries to write them back.

I prefer to migrate zbud pages directly if it's possible than reclaiming
them during compaction.

>
> One of patches introduces a new flag: PageZbud. This flag is used in
> isolate_migratepages_range() to grab zbud pages and pass them later
> for reclaim. Probably this could be replaced with something
> smarter than a flag used only in one case.
> Any ideas for a better solution are welcome.
>
> This patch set is based on Linux 3.11-rc4.
>
> TODOs:
> 1. Replace PageZbud flag with other solution.
>
> Best regards,
> Krzysztof Kozlowski
>
>
> Krzysztof Kozlowski (4):
> zbud: use page ref counter for zbud pages
> mm: split code for unusing swap entries from try_to_unuse
> mm: add zbud flag to page flags
> mm: reclaim zbud pages on migration and compaction
>
> include/linux/page-flags.h | 12 ++
> include/linux/swapfile.h | 2 +
> include/linux/zbud.h | 11 +-
> mm/compaction.c | 20 ++-
> mm/internal.h | 1 +
> mm/page_alloc.c | 9 ++
> mm/swapfile.c | 354 +++++++++++++++++++++++---------------------
> mm/zbud.c | 301 +++++++++++++++++++++++++------------
> mm/zswap.c | 57 ++++++-
> 9 files changed, 499 insertions(+), 268 deletions(-)
>

--
Regards,
-Bob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/