From: Wei Yang Date: Fri, 13 May 2022 03:23:00 +0000 (-0700) Subject: mm/vmscan: don't use NUMA_NO_NODE as indicator of page on different node X-Git-Tag: baikal/aarch64/sdk6.1~3913^2~122 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=329d167471d68454ccfe7f2041933a3b1f072d60;p=kernel.git mm/vmscan: don't use NUMA_NO_NODE as indicator of page on different node Now we are sure there is at least one page on page_list, so it is safe to get the nid of it. This means it is not necessary to use NUMA_NO_NODE as an indicator for the beginning of iteration or a page on different node. Link: https://lkml.kernel.org/r/20220429014426.29223-2-richard.weiyang@gmail.com Signed-off-by: Wei Yang Reviewed-by: Andrew Morton Cc: Minchan Kim Signed-off-by: Andrew Morton --- diff --git a/mm/vmscan.c b/mm/vmscan.c index 43883ff89c1a0..9cfce1449af42 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2562,7 +2562,7 @@ static unsigned int reclaim_page_list(struct list_head *page_list, unsigned long reclaim_pages(struct list_head *page_list) { - int nid = NUMA_NO_NODE; + int nid; unsigned int nr_reclaimed = 0; LIST_HEAD(node_page_list); struct page *page; @@ -2573,10 +2573,9 @@ unsigned long reclaim_pages(struct list_head *page_list) noreclaim_flag = memalloc_noreclaim_save(); + nid = page_to_nid(lru_to_page(page_list)); do { page = lru_to_page(page_list); - if (nid == NUMA_NO_NODE) - nid = page_to_nid(page); if (nid == page_to_nid(page)) { ClearPageActive(page); @@ -2585,7 +2584,7 @@ unsigned long reclaim_pages(struct list_head *page_list) } nr_reclaimed += reclaim_page_list(&node_page_list, NODE_DATA(nid)); - nid = NUMA_NO_NODE; + nid = page_to_nid(lru_to_page(page_list)); } while (!list_empty(page_list)); nr_reclaimed += reclaim_page_list(&node_page_list, NODE_DATA(nid));