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. 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(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/