• Xu Yu's avatar
    Revert "mm/memory-failure.c: skip huge_zero_page in memory_failure()" · b4e61fc0
    Xu Yu authored
    Patch series "mm/memory-failure: rework fix on huge_zero_page splitting".
    
    
    This patch (of 2):
    
    This reverts commit d173d541.
    
    The commit d173d541 ("mm/memory-failure.c: skip huge_zero_page in
    memory_failure()") explicitly skips huge_zero_page in memory_failure(), in
    order to avoid triggering VM_BUG_ON_PAGE on huge_zero_page in
    split_huge_page_to_list().
    
    This works, but Yang Shi thinks that,
    
        Raising BUG is overkilling for splitting huge_zero_page. The
        huge_zero_page can't be met from normal paths other than memory
        failure, but memory failure is a valid caller. So I tend to replace
        the BUG to WARN + returning -EBUSY. If we don't care about the
        reason code in memory failure, we don't have to touch memory
        failure.
    
    And for the issue that huge_zero_page will be set PG_has_hwpoisoned,
    Yang Shi comments that,
    
        The anonymous page fault doesn't check if the page is poisoned or
        not since it typically gets a fresh allocated page and assumes the
        poisoned page (isolated successfully) can't be reallocated again.
        But huge zero page and base zero page are reused every time. So no
        matter what fix we pick, the issue is always there.
    
    Finally, Yang, David, Anshuman and Naoya all agree to fix the bug, i.e.,
    to split huge_zero_page, in split_huge_page_to_list().
    
    This reverts the commit d173d541 ("mm/memory-failure.c: skip
    huge_zero_page in memory_failure()"), and the original bug will be fixed
    by the next patch.
    
    Link: https://lkml.kernel.org/r/872cefb182ba1dd686b0e7db1e6b2ebe5a4fff87.1651039624.git.xuyu@linux.alibaba.com
    Fixes: d173d541 ("mm/memory-failure.c: skip huge_zero_page in memory_failure()")
    Fixes: 6a46079c ("HWPOISON: The high level memory error handler in the VM v7")
    Signed-off-by: default avatarXu Yu <xuyu@linux.alibaba.com>
    Suggested-by: default avatarYang Shi <shy828301@gmail.com>
    Reviewed-by: default avatarYang Shi <shy828301@gmail.com>
    Reviewed-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    b4e61fc0
memory-failure.c 62.7 KB