mm: memory-failure: use local variable huge to check hugetlb page

Use local variable huge to check whether page is hugetlb page to avoid
calling PageHuge() multiple times to save cpu cycles.  PageHuge() will be
stable while extra page refcnt is held.

Link: https://lkml.kernel.org/r/20230711055016.2286677-5-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Miaohe Lin 2023-07-11 13:50:12 +08:00 committed by Andrew Morton
parent 80ee7cb271
commit 55c7ac4527

View File

@ -2617,7 +2617,7 @@ static int soft_offline_in_use_page(struct page *page)
}
lock_page(page);
if (!PageHuge(page))
if (!huge)
wait_on_page_writeback(page);
if (PageHWPoison(page)) {
unlock_page(page);
@ -2626,7 +2626,7 @@ static int soft_offline_in_use_page(struct page *page)
return 0;
}
if (!PageHuge(page) && PageLRU(page) && !PageSwapCache(page))
if (!huge && PageLRU(page) && !PageSwapCache(page))
/*
* Try to invalidate first. This should work for
* non dirty unmapped page cache pages.