kernel: bump 6.1 to 6.1.54
[openwrt/openwrt.git] / target / linux / generic / backport-6.1 / 020-v6.3-06-BACKPORT-mm-multi-gen-LRU-per-node-lru_gen_folio-lis.patch
index bfba00ac023d510bd6581b8a4c8f1fc7fc38a2a5..0fd3699b61287e13bb44a885994df12b74f9b786 100644 (file)
@@ -335,7 +335,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        if (order > 0)
                return 0;
  
-@@ -5383,6 +5396,7 @@ static int mem_cgroup_css_online(struct
+@@ -5373,6 +5386,7 @@ static int mem_cgroup_css_online(struct
        if (unlikely(mem_cgroup_is_root(memcg)))
                queue_delayed_work(system_unbound_wq, &stats_flush_dwork,
                                   2UL*HZ);
@@ -343,7 +343,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        return 0;
  offline_kmem:
        memcg_offline_kmem(memcg);
-@@ -5414,6 +5428,7 @@ static void mem_cgroup_css_offline(struc
+@@ -5404,6 +5418,7 @@ static void mem_cgroup_css_offline(struc
        memcg_offline_kmem(memcg);
        reparent_shrinker_deferred(memcg);
        wb_memcg_offline(memcg);
@@ -351,7 +351,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
        drain_all_stock(memcg);
  
-@@ -5425,6 +5440,7 @@ static void mem_cgroup_css_released(stru
+@@ -5415,6 +5430,7 @@ static void mem_cgroup_css_released(stru
        struct mem_cgroup *memcg = mem_cgroup_from_css(css);
  
        invalidate_reclaim_iterators(memcg);
@@ -402,7 +402,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  static struct lruvec *get_lruvec(struct mem_cgroup *memcg, int nid)
  {
        struct pglist_data *pgdat = NODE_DATA(nid);
-@@ -4440,8 +4440,7 @@ done:
+@@ -4442,8 +4442,7 @@ done:
                if (sc->priority <= DEF_PRIORITY - 2)
                        wait_event_killable(lruvec->mm_state.wait,
                                            max_seq < READ_ONCE(lrugen->max_seq));
@@ -412,7 +412,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        }
  
        VM_WARN_ON_ONCE(max_seq != READ_ONCE(lrugen->max_seq));
-@@ -4514,8 +4513,6 @@ static void lru_gen_age_node(struct pgli
+@@ -4516,8 +4515,6 @@ static void lru_gen_age_node(struct pgli
  
        VM_WARN_ON_ONCE(!current_is_kswapd());
  
@@ -421,7 +421,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
        /* check the order to exclude compaction-induced reclaim */
        if (!min_ttl || sc->order || sc->priority == DEF_PRIORITY)
                return;
-@@ -5104,8 +5101,7 @@ static bool should_run_aging(struct lruv
+@@ -5116,8 +5113,7 @@ static bool should_run_aging(struct lruv
   * 1. Defer try_to_inc_max_seq() to workqueues to reduce latency for memcg
   *    reclaim.
   */
@@ -431,7 +431,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  {
        unsigned long nr_to_scan;
        struct mem_cgroup *memcg = lruvec_memcg(lruvec);
-@@ -5122,10 +5118,8 @@ static unsigned long get_nr_to_scan(stru
+@@ -5134,10 +5130,8 @@ static unsigned long get_nr_to_scan(stru
        if (sc->priority == DEF_PRIORITY)
                return nr_to_scan;
  
@@ -443,7 +443,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  }
  
  static unsigned long get_nr_to_reclaim(struct scan_control *sc)
-@@ -5134,29 +5128,18 @@ static unsigned long get_nr_to_reclaim(s
+@@ -5146,29 +5140,18 @@ static unsigned long get_nr_to_reclaim(s
        if (!global_reclaim(sc))
                return -1;
  
@@ -475,7 +475,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
                if (sc->may_swap)
                        swappiness = get_swappiness(lruvec, sc);
-@@ -5166,7 +5149,7 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5178,7 +5161,7 @@ static void lru_gen_shrink_lruvec(struct
                        swappiness = 0;
  
                nr_to_scan = get_nr_to_scan(lruvec, sc, swappiness);
@@ -484,7 +484,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                        break;
  
                delta = evict_folios(lruvec, sc, swappiness);
-@@ -5183,10 +5166,251 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5195,10 +5178,251 @@ static void lru_gen_shrink_lruvec(struct
                cond_resched();
        }
  
@@ -736,7 +736,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
  /******************************************************************************
   *                          state change
-@@ -5644,11 +5868,11 @@ static int run_cmd(char cmd, int memcg_i
+@@ -5656,11 +5880,11 @@ static int run_cmd(char cmd, int memcg_i
  
        if (!mem_cgroup_disabled()) {
                rcu_read_lock();
@@ -751,7 +751,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                rcu_read_unlock();
  
                if (!memcg)
-@@ -5796,6 +6020,19 @@ void lru_gen_init_lruvec(struct lruvec *
+@@ -5808,6 +6032,19 @@ void lru_gen_init_lruvec(struct lruvec *
  }
  
  #ifdef CONFIG_MEMCG
@@ -771,7 +771,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  void lru_gen_init_memcg(struct mem_cgroup *memcg)
  {
        INIT_LIST_HEAD(&memcg->mm_list.fifo);
-@@ -5819,7 +6056,69 @@ void lru_gen_exit_memcg(struct mem_cgrou
+@@ -5831,7 +6068,69 @@ void lru_gen_exit_memcg(struct mem_cgrou
                }
        }
  }
@@ -842,7 +842,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  
  static int __init init_lru_gen(void)
  {
-@@ -5846,6 +6145,10 @@ static void lru_gen_shrink_lruvec(struct
+@@ -5858,6 +6157,10 @@ static void lru_gen_shrink_lruvec(struct
  {
  }
  
@@ -853,7 +853,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
  #endif /* CONFIG_LRU_GEN */
  
  static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
-@@ -5859,7 +6162,7 @@ static void shrink_lruvec(struct lruvec
+@@ -5871,7 +6174,7 @@ static void shrink_lruvec(struct lruvec
        bool proportional_reclaim;
        struct blk_plug plug;
  
@@ -862,7 +862,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
                lru_gen_shrink_lruvec(lruvec, sc);
                return;
        }
-@@ -6102,6 +6405,11 @@ static void shrink_node(pg_data_t *pgdat
+@@ -6114,6 +6417,11 @@ static void shrink_node(pg_data_t *pgdat
        struct lruvec *target_lruvec;
        bool reclaimable = false;