mm/memory-failure: remove obsolete MF_MSG_DIFFERENT_COMPOUND
The page cannot become compound pages again just after a folio is split as an extra refcnt is held. So the MF_MSG_DIFFERENT_COMPOUND case is obsolete and can be removed to get rid of this false assumption and code burden. But add one WARN_ON() here to keep the situation clear. Link: https://lkml.kernel.org/r/20240708030544.196919-1-linmiaohe@huawei.com Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> Cc: Borislav Petkov (AMD) <bp@alien8.de> Cc: Naoya Horiguchi <nao.horiguchi@gmail.com> Cc: Tony Luck <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
a5ea521250
commit
8a78882dac
@ -356,7 +356,6 @@ TRACE_EVENT(aer_event,
|
|||||||
#define MF_PAGE_TYPE \
|
#define MF_PAGE_TYPE \
|
||||||
EM ( MF_MSG_KERNEL, "reserved kernel page" ) \
|
EM ( MF_MSG_KERNEL, "reserved kernel page" ) \
|
||||||
EM ( MF_MSG_KERNEL_HIGH_ORDER, "high-order kernel page" ) \
|
EM ( MF_MSG_KERNEL_HIGH_ORDER, "high-order kernel page" ) \
|
||||||
EM ( MF_MSG_DIFFERENT_COMPOUND, "different compound page after locking" ) \
|
|
||||||
EM ( MF_MSG_HUGE, "huge page" ) \
|
EM ( MF_MSG_HUGE, "huge page" ) \
|
||||||
EM ( MF_MSG_FREE_HUGE, "free huge page" ) \
|
EM ( MF_MSG_FREE_HUGE, "free huge page" ) \
|
||||||
EM ( MF_MSG_GET_HWPOISON, "get hwpoison page" ) \
|
EM ( MF_MSG_GET_HWPOISON, "get hwpoison page" ) \
|
||||||
|
@ -919,7 +919,6 @@ static const char *action_name[] = {
|
|||||||
static const char * const action_page_types[] = {
|
static const char * const action_page_types[] = {
|
||||||
[MF_MSG_KERNEL] = "reserved kernel page",
|
[MF_MSG_KERNEL] = "reserved kernel page",
|
||||||
[MF_MSG_KERNEL_HIGH_ORDER] = "high-order kernel page",
|
[MF_MSG_KERNEL_HIGH_ORDER] = "high-order kernel page",
|
||||||
[MF_MSG_DIFFERENT_COMPOUND] = "different compound page after locking",
|
|
||||||
[MF_MSG_HUGE] = "huge page",
|
[MF_MSG_HUGE] = "huge page",
|
||||||
[MF_MSG_FREE_HUGE] = "free huge page",
|
[MF_MSG_FREE_HUGE] = "free huge page",
|
||||||
[MF_MSG_GET_HWPOISON] = "get hwpoison page",
|
[MF_MSG_GET_HWPOISON] = "get hwpoison page",
|
||||||
@ -2349,22 +2348,10 @@ try_again:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* We're only intended to deal with the non-Compound page here.
|
* We're only intended to deal with the non-Compound page here.
|
||||||
* However, the page could have changed compound pages due to
|
* The page cannot become compound pages again as folio has been
|
||||||
* race window. If this happens, we could try again to hopefully
|
* splited and extra refcnt is held.
|
||||||
* handle the page next round.
|
|
||||||
*/
|
*/
|
||||||
if (folio_test_large(folio)) {
|
WARN_ON(folio_test_large(folio));
|
||||||
if (retry) {
|
|
||||||
ClearPageHWPoison(p);
|
|
||||||
folio_unlock(folio);
|
|
||||||
folio_put(folio);
|
|
||||||
flags &= ~MF_COUNT_INCREASED;
|
|
||||||
retry = false;
|
|
||||||
goto try_again;
|
|
||||||
}
|
|
||||||
res = action_result(pfn, MF_MSG_DIFFERENT_COMPOUND, MF_IGNORED);
|
|
||||||
goto unlock_page;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We use page flags to determine what action should be taken, but
|
* We use page flags to determine what action should be taken, but
|
||||||
|
Loading…
Reference in New Issue
Block a user