kernel: bump 6.1 to 6.1.54
[openwrt/staging/stintel.git] / target / linux / generic / backport-6.1 / 020-v6.3-01-UPSTREAM-mm-multi-gen-LRU-rename-lru_gen_struct-to-l.patch
index d63b03e6e8755d2656daae35abab6db418b60c85..fe32acc9851223e553576ecf6e284812df3625fa 100644 (file)
@@ -126,11 +126,9 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  mm/workingset.c           |  4 ++--
  4 files changed, 24 insertions(+), 24 deletions(-)
 
-diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h
-index e8ed225d8f7ca..f63968bd7de59 100644
 --- a/include/linux/mm_inline.h
 +++ b/include/linux/mm_inline.h
-@@ -178,7 +178,7 @@ static inline void lru_gen_update_size(struct lruvec *lruvec, struct folio *foli
+@@ -178,7 +178,7 @@ static inline void lru_gen_update_size(s
        int zone = folio_zonenum(folio);
        int delta = folio_nr_pages(folio);
        enum lru_list lru = type * LRU_INACTIVE_FILE;
@@ -139,7 +137,7 @@ index e8ed225d8f7ca..f63968bd7de59 100644
  
        VM_WARN_ON_ONCE(old_gen != -1 && old_gen >= MAX_NR_GENS);
        VM_WARN_ON_ONCE(new_gen != -1 && new_gen >= MAX_NR_GENS);
-@@ -224,7 +224,7 @@ static inline bool lru_gen_add_folio(struct lruvec *lruvec, struct folio *folio,
+@@ -224,7 +224,7 @@ static inline bool lru_gen_add_folio(str
        int gen = folio_lru_gen(folio);
        int type = folio_is_file_lru(folio);
        int zone = folio_zonenum(folio);
@@ -148,8 +146,6 @@ index e8ed225d8f7ca..f63968bd7de59 100644
  
        VM_WARN_ON_ONCE_FOLIO(gen != -1, folio);
  
-diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
-index 5f74891556f33..bd3e4689f72dc 100644
 --- a/include/linux/mmzone.h
 +++ b/include/linux/mmzone.h
 @@ -404,7 +404,7 @@ enum {
@@ -179,11 +175,9 @@ index 5f74891556f33..bd3e4689f72dc 100644
        /* to concurrently iterate lru_gen_mm_list */
        struct lru_gen_mm_state         mm_state;
  #endif
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index d18296109aa7e..27142caf284c1 100644
 --- a/mm/vmscan.c
 +++ b/mm/vmscan.c
-@@ -3190,7 +3190,7 @@ static int get_nr_gens(struct lruvec *lruvec, int type)
+@@ -3190,7 +3190,7 @@ static int get_nr_gens(struct lruvec *lr
  
  static bool __maybe_unused seq_is_valid(struct lruvec *lruvec)
  {
@@ -201,7 +195,7 @@ index d18296109aa7e..27142caf284c1 100644
        int hist = lru_hist_from_seq(lrugen->min_seq[type]);
  
        pos->refaulted = lrugen->avg_refaulted[type][tier] +
-@@ -3611,7 +3611,7 @@ static void read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain,
+@@ -3611,7 +3611,7 @@ static void read_ctrl_pos(struct lruvec
  static void reset_ctrl_pos(struct lruvec *lruvec, int type, bool carryover)
  {
        int hist, tier;
@@ -210,7 +204,7 @@ index d18296109aa7e..27142caf284c1 100644
        bool clear = carryover ? NR_HIST_GENS == 1 : NR_HIST_GENS > 1;
        unsigned long seq = carryover ? lrugen->min_seq[type] : lrugen->max_seq + 1;
  
-@@ -3688,7 +3688,7 @@ static int folio_update_gen(struct folio *folio, int gen)
+@@ -3688,7 +3688,7 @@ static int folio_update_gen(struct folio
  static int folio_inc_gen(struct lruvec *lruvec, struct folio *folio, bool reclaiming)
  {
        int type = folio_is_file_lru(folio);
@@ -219,7 +213,7 @@ index d18296109aa7e..27142caf284c1 100644
        int new_gen, old_gen = lru_gen_from_seq(lrugen->min_seq[type]);
        unsigned long new_flags, old_flags = READ_ONCE(folio->flags);
  
-@@ -3733,7 +3733,7 @@ static void update_batch_size(struct lru_gen_mm_walk *walk, struct folio *folio,
+@@ -3733,7 +3733,7 @@ static void update_batch_size(struct lru
  static void reset_batch_size(struct lruvec *lruvec, struct lru_gen_mm_walk *walk)
  {
        int gen, type, zone;
@@ -228,7 +222,7 @@ index d18296109aa7e..27142caf284c1 100644
  
        walk->batched = 0;
  
-@@ -4250,7 +4250,7 @@ static bool inc_min_seq(struct lruvec *lruvec, int type, bool can_swap)
+@@ -4250,7 +4250,7 @@ static bool inc_min_seq(struct lruvec *l
  {
        int zone;
        int remaining = MAX_LRU_BATCH;
@@ -237,7 +231,7 @@ index d18296109aa7e..27142caf284c1 100644
        int new_gen, old_gen = lru_gen_from_seq(lrugen->min_seq[type]);
  
        if (type == LRU_GEN_ANON && !can_swap)
-@@ -4286,7 +4286,7 @@ static bool try_to_inc_min_seq(struct lruvec *lruvec, bool can_swap)
+@@ -4286,7 +4286,7 @@ static bool try_to_inc_min_seq(struct lr
  {
        int gen, type, zone;
        bool success = false;
@@ -246,7 +240,7 @@ index d18296109aa7e..27142caf284c1 100644
        DEFINE_MIN_SEQ(lruvec);
  
        VM_WARN_ON_ONCE(!seq_is_valid(lruvec));
-@@ -4307,7 +4307,7 @@ static bool try_to_inc_min_seq(struct lruvec *lruvec, bool can_swap)
+@@ -4307,7 +4307,7 @@ next:
                ;
        }
  
@@ -255,16 +249,16 @@ index d18296109aa7e..27142caf284c1 100644
        if (can_swap) {
                min_seq[LRU_GEN_ANON] = min(min_seq[LRU_GEN_ANON], min_seq[LRU_GEN_FILE]);
                min_seq[LRU_GEN_FILE] = max(min_seq[LRU_GEN_ANON], lrugen->min_seq[LRU_GEN_FILE]);
-@@ -4329,7 +4329,7 @@ static void inc_max_seq(struct lruvec *lruvec, bool can_swap, bool force_scan)
+@@ -4329,7 +4329,7 @@ static void inc_max_seq(struct lruvec *l
  {
        int prev, next;
        int type, zone;
 -      struct lru_gen_struct *lrugen = &lruvec->lrugen;
 +      struct lru_gen_folio *lrugen = &lruvec->lrugen;
  
+ restart:
        spin_lock_irq(&lruvec->lru_lock);
-@@ -4387,7 +4387,7 @@ static bool try_to_inc_max_seq(struct lruvec *lruvec, unsigned long max_seq,
+@@ -4389,7 +4389,7 @@ static bool try_to_inc_max_seq(struct lr
        bool success;
        struct lru_gen_mm_walk *walk;
        struct mm_struct *mm = NULL;
@@ -273,7 +267,7 @@ index d18296109aa7e..27142caf284c1 100644
  
        VM_WARN_ON_ONCE(max_seq > READ_ONCE(lrugen->max_seq));
  
-@@ -4452,7 +4452,7 @@ static bool should_run_aging(struct lruvec *lruvec, unsigned long max_seq, unsig
+@@ -4454,7 +4454,7 @@ static bool should_run_aging(struct lruv
        unsigned long old = 0;
        unsigned long young = 0;
        unsigned long total = 0;
@@ -282,7 +276,7 @@ index d18296109aa7e..27142caf284c1 100644
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
  
        for (type = !can_swap; type < ANON_AND_FILE; type++) {
-@@ -4737,7 +4737,7 @@ static bool sort_folio(struct lruvec *lruvec, struct folio *folio, int tier_idx)
+@@ -4740,7 +4740,7 @@ static bool sort_folio(struct lruvec *lr
        int delta = folio_nr_pages(folio);
        int refs = folio_lru_refs(folio);
        int tier = lru_tier_from_refs(refs);
@@ -291,7 +285,7 @@ index d18296109aa7e..27142caf284c1 100644
  
        VM_WARN_ON_ONCE_FOLIO(gen >= MAX_NR_GENS, folio);
  
-@@ -4837,7 +4837,7 @@ static int scan_folios(struct lruvec *lruvec, struct scan_control *sc,
+@@ -4848,7 +4848,7 @@ static int scan_folios(struct lruvec *lr
        int scanned = 0;
        int isolated = 0;
        int remaining = MAX_LRU_BATCH;
@@ -300,7 +294,7 @@ index d18296109aa7e..27142caf284c1 100644
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
  
        VM_WARN_ON_ONCE(!list_empty(list));
-@@ -5237,7 +5237,7 @@ static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc
+@@ -5249,7 +5249,7 @@ done:
  
  static bool __maybe_unused state_is_valid(struct lruvec *lruvec)
  {
@@ -309,7 +303,7 @@ index d18296109aa7e..27142caf284c1 100644
  
        if (lrugen->enabled) {
                enum lru_list lru;
-@@ -5519,7 +5519,7 @@ static void lru_gen_seq_show_full(struct seq_file *m, struct lruvec *lruvec,
+@@ -5531,7 +5531,7 @@ static void lru_gen_seq_show_full(struct
        int i;
        int type, tier;
        int hist = lru_hist_from_seq(seq);
@@ -318,7 +312,7 @@ index d18296109aa7e..27142caf284c1 100644
  
        for (tier = 0; tier < MAX_NR_TIERS; tier++) {
                seq_printf(m, "            %10d", tier);
-@@ -5569,7 +5569,7 @@ static int lru_gen_seq_show(struct seq_file *m, void *v)
+@@ -5581,7 +5581,7 @@ static int lru_gen_seq_show(struct seq_f
        unsigned long seq;
        bool full = !debugfs_real_fops(m->file)->write;
        struct lruvec *lruvec = v;
@@ -327,7 +321,7 @@ index d18296109aa7e..27142caf284c1 100644
        int nid = lruvec_pgdat(lruvec)->node_id;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
        DEFINE_MAX_SEQ(lruvec);
-@@ -5823,7 +5823,7 @@ void lru_gen_init_lruvec(struct lruvec *lruvec)
+@@ -5835,7 +5835,7 @@ void lru_gen_init_lruvec(struct lruvec *
  {
        int i;
        int gen, type, zone;
@@ -336,11 +330,9 @@ index d18296109aa7e..27142caf284c1 100644
  
        lrugen->max_seq = MIN_NR_GENS + 1;
        lrugen->enabled = lru_gen_enabled();
-diff --git a/mm/workingset.c b/mm/workingset.c
-index ae7e984b23c6b..688aaa73f64e8 100644
 --- a/mm/workingset.c
 +++ b/mm/workingset.c
-@@ -223,7 +223,7 @@ static void *lru_gen_eviction(struct folio *folio)
+@@ -223,7 +223,7 @@ static void *lru_gen_eviction(struct fol
        unsigned long token;
        unsigned long min_seq;
        struct lruvec *lruvec;
@@ -349,7 +341,7 @@ index ae7e984b23c6b..688aaa73f64e8 100644
        int type = folio_is_file_lru(folio);
        int delta = folio_nr_pages(folio);
        int refs = folio_lru_refs(folio);
-@@ -252,7 +252,7 @@ static void lru_gen_refault(struct folio *folio, void *shadow)
+@@ -252,7 +252,7 @@ static void lru_gen_refault(struct folio
        unsigned long token;
        unsigned long min_seq;
        struct lruvec *lruvec;
@@ -358,6 +350,3 @@ index ae7e984b23c6b..688aaa73f64e8 100644
        struct mem_cgroup *memcg;
        struct pglist_data *pgdat;
        int type = folio_is_file_lru(folio);
--- 
-2.40.1
-