> The approach looks OK for me, and despite it does not solve the problem
> completely, it improves the isolation. Also, we may use this to finally
> make shrink_slab() iterations lockless (or you may just send couple of
> patches on top of that :).

If you mean replacing rwsem with srcu it looks like a good idea, but it can be done later separately on top of it (if we succeed with this patch =).

>
> Small cosmetic note. I'd removed comments in prealloc_shrinker() and
> free_preallocated_shrinker() since they just describe obvious actions,
> and we do not need to comment every line we do. But a small comment
> is needed about that synchronize_rcu() is to make wake_up on stable
> memory.

I've just tried hard to make my patch as self explaining as possible, I can remove these (or some more) comments In next versions if they are excess.


Best regards, Tikhomirov Pavel.