Re: What should we be doing to stress-test kfree_rcu()?

From: Joel Fernandes
Date: Wed Apr 01 2020 - 16:50:16 EST


On Wed, Apr 01, 2020 at 11:44:15AM -0700, Paul E. McKenney wrote:
> Hello!
>
> What should we be doing to stress-test kfree_rcu(), including its ability
> to cope with OOM conditions? Yes, rcuperf runs are nice, but they are not
> currently doing much more than testing base functionality, performance,
> and scalability.

I already stress kfree_rcu() with rcuperf right now to a point of OOM and
make sure it does not OOM. The way I do this is set my VM to low memory (like
512MB) and then flood kfree_rcu()s. After the shrinker changes, I don't see
OOM with my current rcuperf settings.

Not saying that my testing is sufficient, just saying this is what I do. It
would be good to get a real workload to trigger lot of kfree_rcu() activity
as well especially on low memory systems. Any ideas on that?

One idea could be to trigger memory pressure from unrelated allocations (such
as userspace memory hogs), and see how it perform with memory-pressure. For
one, the shrinker should trigger in such situations to force the queue into
waiting for a GP in such situations instead of batching too much.

We are also missing vmalloc() tests. I remember Vlad had some clever vmalloc
tests around for his great vmalloc rewrites :). Vlad, any thoughts on getting
to stress kvfree_rcu()?

thanks,

- Joel