]> Git Repo - linux.git/commit
mm/hwpoison: retry with shake_page() for unhandlable pages
authorNaoya Horiguchi <[email protected]>
Fri, 20 Aug 2021 02:04:24 +0000 (19:04 -0700)
committerLinus Torvalds <[email protected]>
Fri, 20 Aug 2021 18:31:42 +0000 (11:31 -0700)
commitfcc00621d88b274b5dffd8daeea71d0e4c28b84e
tree202aae1cb1efbe12e4c794fff6588b543a730b57
parentf56ce412a59d7d938b81de8878faef128812482c
mm/hwpoison: retry with shake_page() for unhandlable pages

HWPoisonHandlable() sometimes returns false for typical user pages due
to races with average memory events like transfers over LRU lists.  This
causes failures in hwpoison handling.

There's retry code for such a case but does not work because the retry
loop reaches the retry limit too quickly before the page settles down to
handlable state.  Let get_any_page() call shake_page() to fix it.

[[email protected]: get_any_page(): return -EIO when retry limit reached]
Link: https://lkml.kernel.org/r/[email protected]
Link: https://lkml.kernel.org/r/[email protected]
Fixes: 25182f05ffed ("mm,hwpoison: fix race with hugetlb page allocation")
Signed-off-by: Naoya Horiguchi <[email protected]>
Reported-by: Tony Luck <[email protected]>
Reviewed-by: Yang Shi <[email protected]>
Cc: Oscar Salvador <[email protected]>
Cc: Muchun Song <[email protected]>
Cc: Mike Kravetz <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: <[email protected]> [5.13+]
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/memory-failure.c
This page took 0.054043 seconds and 4 git commands to generate.