[RFC 0/3] mm: Discard lazily freed pages when migrating

From: Huang, Ying
Date: Thu Feb 27 2020 - 22:38:38 EST


From: Huang Ying <ying.huang@xxxxxxxxx>

MADV_FREE is a lazy free mechanism in Linux. According to the manpage
of mavise(2), the semantics of MADV_FREE is,

The application no longer requires the pages in the range specified
by addr and len. The kernel can thus free these pages, but the
freeing could be delayed until memory pressure occurs. ...

Originally, the pages freed lazily by MADV_FREE will only be freed
really by page reclaiming when there is memory pressure or when
unmapping the address range. In addition to that, there's another
opportunity to free these pages really, when we try to migrate them.

The main value to do that is to avoid to create the new memory
pressure immediately if possible. Instead, even if the pages are
required again, they will be allocated gradually on demand. That is,
the memory will be allocated lazily when necessary. This follows the
common philosophy in the Linux kernel, allocate resources lazily on
demand.

This patchset implement this in addition to some cleanup to migration
and MADV_FREE code.

Best Regards,
Huang, Ying