On Thu, Dec 17, 2020 at 04:56:48PM -0800, Yang Shi wrote: > On Tue, Dec 15, 2020 at 3:07 PM Yang Shi <shy828301@xxxxxxxxx> wrote: > > > This guarantees that only the shrinker instances taht have a > > > correctly set up memcg attached to them will have the > > > SHRINKER_MEMCG_AWARE flag set. Hence in all the rest of the shrinker > > > code, we only ever need to check for SHRINKER_MEMCG_AWARE to > > > determine what we should do.... > > > > Thanks. I see your point. We could move the memcg specific details > > into prealloc_memcg_shrinker(). > > > > It seems we have to acquire shrinker_rwsem before we check and modify > > SHIRNKER_MEMCG_AWARE bit if we may clear it. > > Hi Dave, > > Is it possible that shrinker register races with shrinker unregister? > It seems impossible to me by a quick visual code inspection. But I'm > not a VFS expert so I'm not quite sure. Uh, if you have a shrinker racing to register and unregister, you've got a major bug in your object initialisation/teardown code. i.e. calling reagister/unregister at the same time for the same shrinker is a bug, pure and simple. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx