367f93363bba9173652f08fb2de0ca9e666473d6
[openwrt/staging/blogic.git] /
1 From cf3297e4c7a928da8b2b2f0baff2f9c69ea57952 Mon Sep 17 00:00:00 2001
2 From: Yu Zhao <yuzhao@google.com>
3 Date: Wed, 21 Dec 2022 21:19:06 -0700
4 Subject: [PATCH 28/29] mm: multi-gen LRU: simplify arch_has_hw_pte_young()
5 check
6
7 Scanning page tables when hardware does not set the accessed bit has
8 no real use cases.
9
10 Link: https://lkml.kernel.org/r/20221222041905.2431096-9-yuzhao@google.com
11 Signed-off-by: Yu Zhao <yuzhao@google.com>
12 Cc: Johannes Weiner <hannes@cmpxchg.org>
13 Cc: Jonathan Corbet <corbet@lwn.net>
14 Cc: Michael Larabel <Michael@MichaelLarabel.com>
15 Cc: Michal Hocko <mhocko@kernel.org>
16 Cc: Mike Rapoport <rppt@kernel.org>
17 Cc: Roman Gushchin <roman.gushchin@linux.dev>
18 Cc: Suren Baghdasaryan <surenb@google.com>
19 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
20 ---
21 mm/vmscan.c | 2 +-
22 1 file changed, 1 insertion(+), 1 deletion(-)
23
24 --- a/mm/vmscan.c
25 +++ b/mm/vmscan.c
26 @@ -4418,7 +4418,7 @@ static bool try_to_inc_max_seq(struct lr
27 * handful of PTEs. Spreading the work out over a period of time usually
28 * is less efficient, but it avoids bursty page faults.
29 */
30 - if (!force_scan && !(arch_has_hw_pte_young() && get_cap(LRU_GEN_MM_WALK))) {
31 + if (!arch_has_hw_pte_young() || !get_cap(LRU_GEN_MM_WALK)) {
32 success = iterate_mm_list_nowalk(lruvec, max_seq);
33 goto done;
34 }