On Mon, Nov 04, 2024 at 01:38:34PM -0800, Andrew Morton wrote: > On Mon, 4 Nov 2024 10:30:29 -0700 Yu Zhao <yuzhao@xxxxxxxxxx> wrote: > > > On Sat, Oct 26, 2024 at 09:26:04AM -0600, Yu Zhao wrote: > > > On Sat, Oct 26, 2024 at 12:34 AM Shakeel Butt <shakeel.butt@xxxxxxxxx> wrote: > > > > > > > > On Thu, Oct 24, 2024 at 06:23:02PM GMT, Shakeel Butt wrote: > > > > > While updating the generation of the folios, MGLRU requires that the > > > > > folio's memcg association remains stable. With the charge migration > > > > > deprecated, there is no need for MGLRU to acquire locks to keep the > > > > > folio and memcg association stable. > > > > > > > > > > Signed-off-by: Shakeel Butt <shakeel.butt@xxxxxxxxx> > > > > > > > > Andrew, can you please apply the following fix to this patch after your > > > > unused fixup? > > > > > > Thanks! > > > > syzbot caught the following: > > > > WARNING: CPU: 0 PID: 85 at mm/vmscan.c:3140 folio_update_gen+0x23d/0x250 mm/vmscan.c:3140 > > ... > > > > Andrew, can you please fix this in place? > > OK, but... > > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -3138,7 +3138,6 @@ static int folio_update_gen(struct folio *folio, int gen) > > unsigned long new_flags, old_flags = READ_ONCE(folio->flags); > > > > VM_WARN_ON_ONCE(gen >= MAX_NR_GENS); > > - VM_WARN_ON_ONCE(!rcu_read_lock_held()); > > > > do { > > /* lru_gen_del_folio() has isolated this page? */ > > it would be good to know why this assertion is considered incorrect? > And a link to the sysbot report? So, this assertion is incorrect after this patch series that has removed the charge migration and has removed mem_cgroup_trylock_pages() / mem_cgroup_unlock_pages() from the caller of this function (folio_update_gen()).