Re: [PATCH] mm, shrinker: make shrinker_list lockless

2017-11-07 Thread Shakeel Butt
> if (next_deferred >= scanned) > @@ -468,18 +487,9 @@ static unsigned long shrink_slab(gfp_t gfp_mask, int nid, > if (nr_scanned == 0) > nr_scanned = SWAP_CLUSTER_MAX; > > - if (!down_read_trylock(_rwsem)) { > - /* > -* If we

Re: [PATCH] mm, shrinker: make shrinker_list lockless

2017-11-07 Thread Shakeel Butt
> if (next_deferred >= scanned) > @@ -468,18 +487,9 @@ static unsigned long shrink_slab(gfp_t gfp_mask, int nid, > if (nr_scanned == 0) > nr_scanned = SWAP_CLUSTER_MAX; > > - if (!down_read_trylock(_rwsem)) { > - /* > -* If we

[PATCH] mm, shrinker: make shrinker_list lockless

2017-11-07 Thread Shakeel Butt
In our production, we have observed that the job loader gets stuck for 10s of seconds while doing mount operation. It turns out that it was stuck in register_shrinker() and some unrelated job was under memory pressure and spending time in shrink_slab(). Our machines have a lot of shrinkers

[PATCH] mm, shrinker: make shrinker_list lockless

2017-11-07 Thread Shakeel Butt
In our production, we have observed that the job loader gets stuck for 10s of seconds while doing mount operation. It turns out that it was stuck in register_shrinker() and some unrelated job was under memory pressure and spending time in shrink_slab(). Our machines have a lot of shrinkers