On 3/7/23 07:56, Qi Zheng wrote: > From: Kirill Tkhai <tkhai@xxxxx> > > After we make slab shrink lockless with SRCU, the longest > sleep unregister_shrinker() will be a sleep waiting for > all do_shrink_slab() calls. > > To aviod long unbreakable action in the unregister_shrinker(), ^ avoid > add shrinker_srcu_generation to restore a check similar to the > rwsem_is_contendent() check that we had before. > > And for memcg slab shrink, we unlock SRCU and continue > iterations from the next shrinker id. > > Signed-off-by: Kirill Tkhai <tkhai@xxxxx> > Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx>