• Naoya Horiguchi's avatar
    mm,hwpoison: cleanup unused PageHuge() check · 7d9d46ac
    Naoya Horiguchi authored
    Patch series "HWPOISON: soft offline rework", v7.
    
    This patchset fixes a couple of issues that the patchset Naoya sent [1]
    contained due to rebasing problems and a misunterdansting.
    
    Main focus of this series is to stabilize soft offline.  Historically soft
    offlined pages have suffered from racy conditions because PageHWPoison is
    used to a little too aggressively, which (directly or indirectly) invades
    other mm code which cares little about hwpoison.  This results in
    unexpected behavior or kernel panic, which is very far from soft offline's
    "do not disturb userspace or other kernel component" policy.  An example
    of this can be found here [2].
    
    Along with several cleanups, this code refactors and changes the way soft
    offline work.  Main point of this change set is to contain target page
    "via buddy allocator" or in migrating path.  For ther former we first free
    the target page as we do for normal pages, and once it has reached buddy
    and it has been taken off the freelists, we flag it as HWpoison.  For the
    latter we never get to release the page in unmap_and_move, so the page is
    under our control and we can handle it in hwpoison code.
    
    [1] https://patchwork.kernel.org/cover/11704083/
    [2] https://lore.kernel.org/linux-mm/20190826104144.GA7849@linux/T/#u
    
    This patch (of 14):
    
    Drop the PageHuge check, which is dead code since memory_failure() forks
    into memory_failure_hugetlb() for hugetlb pages.
    
    memory_failure() and memory_failure_hugetlb() shares some functions like
    hwpoison_user_mappings() and identify_page_state(), so they should
    properly handle 4kB page, thp, and hugetlb.
    Signed-off-by: default avatarNaoya Horiguchi <naoya.horiguchi@nec.com>
    Signed-off-by: default avatarOscar Salvador <osalvador@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Reviewed-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Dmitry Yakunin <zeil@yandex-team.ru>
    Cc: Qian Cai <cai@lca.pw>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
    Cc: Aristeu Rozanski <aris@ruivo.org>
    Cc: Oscar Salvador <osalvador@suse.com>
    Link: https://lkml.kernel.org/r/20200922135650.1634-1-osalvador@suse.de
    Link: https://lkml.kernel.org/r/20200922135650.1634-2-osalvador@suse.deSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7d9d46ac
memory-failure.c 53 KB