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

From: Yisheng Xie
Date: Fri Feb 03 2017 - 03:04:48 EST


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 dependent on non-lru movable page migration.
--------
v6:
* just return -EBUSY for isolate_movable_page when it failed to isolate
a non-lru movable page, which suggested by Minchan.

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 | 6 +++---
mm/page_alloc.c | 8 ++++++--
6 files changed, 46 insertions(+), 28 deletions(-)

--
1.7.12.4