mm: hugetlb: soft-offline: dissolve source hugepage after successful migration
authorAnshuman Khandual <[email protected]>
Mon, 10 Jul 2017 22:47:41 +0000 (15:47 -0700)
committerLinus Torvalds <[email protected]>
Mon, 10 Jul 2017 23:32:30 +0000 (16:32 -0700)
commitc3114a84f7f96c9d5c73c8bfa7e21ff42fda97e2
treedc4ccb50cd7cc3498137147af22c91e23c3d0b61
parentb37ff71cc626a0c1b5e098ff9a0b723815f6aaeb
mm: hugetlb: soft-offline: dissolve source hugepage after successful migration

Currently hugepage migrated by soft-offline (i.e.  due to correctable
memory errors) is contained as a hugepage, which means many non-error
pages in it are unreusable, i.e.  wasted.

This patch solves this issue by dissolving source hugepages into buddy.
As done in previous patch, PageHWPoison is set only on a head page of
the error hugepage.  Then in dissoliving we move the PageHWPoison flag
to the raw error page so that all healthy subpages return back to buddy.

[[email protected]: fix warnings: replace some macros with inline functions]
Link: http://lkml.kernel.org/r/[email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Anshuman Khandual <[email protected]>
Signed-off-by: Naoya Horiguchi <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/hugetlb.h
mm/hugetlb.c
mm/memory-failure.c
mm/migrate.c