[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