mirror of https://gitee.com/openkylin/linux.git
thp: remove some code depend on CONFIG_NUMA
If NUMA is disabled, hpage is used as page pre-alloc, so there are two cases for hpage: - it is !NULL, means the page is not consumed otherwise, - the page has been consumed If NUMA is enabled, hpage is just used as alloc-fail indicator which is not a real page, NULL means not fail triggered. So, we can release the page only if !IS_ERR_OR_NULL Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Hugh Dickins <hughd@google.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2017c0bff8
commit
9817626e72
|
@ -2306,11 +2306,8 @@ static void khugepaged_wait_work(void)
|
|||
|
||||
static void khugepaged_loop(void)
|
||||
{
|
||||
struct page *hpage;
|
||||
struct page *hpage = NULL;
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
hpage = NULL;
|
||||
#endif
|
||||
while (likely(khugepaged_enabled())) {
|
||||
#ifndef CONFIG_NUMA
|
||||
hpage = khugepaged_alloc_hugepage();
|
||||
|
@ -2324,10 +2321,9 @@ static void khugepaged_loop(void)
|
|||
#endif
|
||||
|
||||
khugepaged_do_scan(&hpage);
|
||||
#ifndef CONFIG_NUMA
|
||||
if (hpage)
|
||||
|
||||
if (!IS_ERR_OR_NULL(hpage))
|
||||
put_page(hpage);
|
||||
#endif
|
||||
|
||||
khugepaged_wait_work();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue