Re: [PATCH v1 13/26] mm: mglru: prevent memory cgroup release in mglru

From: Harry Yoo

Date: Wed Nov 19 2025 - 05:14:13 EST


On Tue, Oct 28, 2025 at 09:58:26PM +0800, Qi Zheng wrote:
> From: Muchun Song <songmuchun@xxxxxxxxxxxxx>
>
> In the near future, a folio will no longer pin its corresponding
> memory cgroup. To ensure safety, it will only be appropriate to
> hold the rcu read lock or acquire a reference to the memory cgroup
> returned by folio_memcg(), thereby preventing it from being released.
>
> In the current patch, the rcu read lock is employed to safeguard
> against the release of the memory cgroup in mglru.
>
> This serves as a preparatory measure for the reparenting of the
> LRU pages.
>
> Signed-off-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>
> Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx>
> ---
> mm/vmscan.c | 23 +++++++++++++++++------
> 1 file changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 660cd40cfddd4..676e6270e5b45 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -4279,6 +4288,8 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)
>
> arch_leave_lazy_mmu_mode();
>
> + rcu_read_unlock();
> +
> /* feedback from rmap walkers to page table walkers */
> if (mm_state && suitable_to_scan(i, young))
> update_bloom_filter(mm_state, max_seq, pvmw->pmd);

mm_state has the same life cycle as mem_cgroup. So it should be
protected by rcu read lock?

--
Cheers,
Harry / Hyeonggon