[PATCH v2 0/2] mm: soft-offline: fix race against page allocation

From: Naoya Horiguchi
Date: Tue Jul 17 2018 - 01:32:49 EST


I've updated the patchset based on feedbacks:

- updated comments (from Andrew),
- moved calling set_hwpoison_free_buddy_page() from mm/migrate.c to mm/memory-failure.c,
which is necessary to check the return code of set_hwpoison_free_buddy_page(),
- lkp bot reported a build error when only 1/2 is applied.

> mm/memory-failure.c: In function 'soft_offline_huge_page':
> >> mm/memory-failure.c:1610:8: error: implicit declaration of function
> 'set_hwpoison_free_buddy_page'; did you mean 'is_free_buddy_page'?
> [-Werror=implicit-function-declaration]
> if (set_hwpoison_free_buddy_page(page))
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> is_free_buddy_page
> cc1: some warnings being treated as errors

set_hwpoison_free_buddy_page() is defined in 2/2, so we can't use it
in 1/2. Simply doing s/set_hwpoison_free_buddy_page/!TestSetPageHWPoison/
will fix this.

v1: https://lkml.org/lkml/2018/7/12/968

Thanks,
Naoya Horiguchi
---
Summary:

Naoya Horiguchi (2):
mm: fix race on soft-offlining free huge pages
mm: soft-offline: close the race against page allocation

include/linux/page-flags.h | 5 +++++
include/linux/swapops.h | 10 ---------
mm/hugetlb.c | 11 +++++-----
mm/memory-failure.c | 53 ++++++++++++++++++++++++++++++++++++++--------
mm/migrate.c | 11 ----------
mm/page_alloc.c | 30 ++++++++++++++++++++++++++
6 files changed, 84 insertions(+), 36 deletions(-)