mm/workingset.c: avoid unnecessary max_nodes estimation in count_shadow_nodes()
If list_lru_shrink_count is 0, we always return SHRINK_EMPTY regardless of the value of max_nodes. So we can return early if nodes == 0 to save some cpu cycles of approximating a reasonable limit for the nodes. Link: https://lkml.kernel.org/r/20210123073825.46709-1-linmiaohe@huawei.com Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
c2135f7c57
Коммит
725cac1c7e
|
@ -461,6 +461,8 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker,
|
|||
unsigned long pages;
|
||||
|
||||
nodes = list_lru_shrink_count(&shadow_nodes, sc);
|
||||
if (!nodes)
|
||||
return SHRINK_EMPTY;
|
||||
|
||||
/*
|
||||
* Approximate a reasonable limit for the nodes
|
||||
|
@ -503,9 +505,6 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker,
|
|||
|
||||
max_nodes = pages >> (XA_CHUNK_SHIFT - 3);
|
||||
|
||||
if (!nodes)
|
||||
return SHRINK_EMPTY;
|
||||
|
||||
if (nodes <= max_nodes)
|
||||
return 0;
|
||||
return nodes - max_nodes;
|
||||
|
|
Загрузка…
Ссылка в новой задаче