[PATCH v5 0/4] HWPOISON: soft offlining for non-lru movable page

From: ysxie
Date: Tue Jan 31 2017 - 08:23:06 EST


From: Yisheng Xie <xieyisheng1@xxxxxxxxxx>

Hi Andrew,
Could you please help to abandon the v3 of this patch for it will compile
error with CONFIG_MIGRATION=n, and it also has error path handling problem.
I am so sorry about troubling you.

Hi Michal, Minchan and all,
Could you please help to review it?

Any suggestion is more than welcome. And Thanks for all of you.

After Minchan's commit bda807d44454 ("mm: migrate: support non-lru movable
page migration"), some type of non-lru page like zsmalloc and virtio-balloon
page also support migration.

Therefore, we can:
1) soft offlining no-lru movable pages, which means when memory corrected
errors occur on a non-lru movable page, we can stop to use it by migrating
data onto another page and disable the original (maybe half-broken) one.

2) enable memory hotplug for non-lru movable pages, i.e. we may offline
blocks, which include such pages, by using non-lru page migration.

This patchset is heavily depend on non-lru movable page migration.
--------
v5:
* change the return type of isolate_movable_page() from bool to int as
Michal's suggestion.
* add "enable memory hotplug for non-lru movable pages" to this patchset,
which also make some change as Michal's suggestion here.

v4:
* make isolate_movable_page always defined to avoid compile error with
CONFIG_MIGRATION = n
* return -EBUSY when isolate_movable_page return false which means failed
to isolate movable page.

v3:
* delete some unneed limitation and use !__PageMovable instead of PageLRU
after isolate page to avoid isolated count mismatch, as Minchan Kim's suggestion.

v2:
* delete function soft_offline_movable_page() and hanle non-lru movable
page in __soft_offline_page() as Michal Hocko suggested.

Yisheng Xie (4):
mm/migration: make isolate_movable_page() return int type
mm/migration: make isolate_movable_page always defined
HWPOISON: soft offlining for non-lru movable page
mm/hotplug: enable memory hotplug for non-lru movable pages

include/linux/migrate.h | 4 +++-
mm/compaction.c | 2 +-
mm/memory-failure.c | 26 ++++++++++++++++----------
mm/memory_hotplug.c | 28 +++++++++++++++++-----------
mm/migrate.c | 11 +++++++----
mm/page_alloc.c | 8 ++++++--
6 files changed, 50 insertions(+), 29 deletions(-)

--
1.9.1