On Fri, Nov 20, 2020 at 12:59 PM Uladzislau Rezki <urezki@xxxxxxxxx> wrote: > > On Thu, Nov 19, 2020 at 01:49:34PM -0800, Paul E. McKenney wrote: > > On Wed, Nov 18, 2020 at 11:53:09AM +0800, qiang.zhang@xxxxxxxxxxxxx wrote: > > > From: Zqiang <qiang.zhang@xxxxxxxxxxxxx> > > > > > > Add kasan_record_aux_stack function for kvfree_call_rcu function to > > > record call stacks. > > > > > > Signed-off-by: Zqiang <qiang.zhang@xxxxxxxxxxxxx> > > > > Thank you, but this does not apply on the "dev" branch of the -rcu tree. > > See file:///home/git/kernel.org/rcutodo.html for more info. > > > > Adding others on CC who might have feedback on the general approach. > > > > Thanx, Paul > > > > > --- > > > kernel/rcu/tree.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > > index da3414522285..a252b2f0208d 100644 > > > --- a/kernel/rcu/tree.c > > > +++ b/kernel/rcu/tree.c > > > @@ -3506,7 +3506,7 @@ void kvfree_call_rcu(struct rcu_head *head, rcu_callback_t func) > > > success = true; > > > goto unlock_return; > > > } > > > - > > > + kasan_record_aux_stack(ptr); > Is that save to invoke it on vmalloced ptr.? Yes, kasan_record_aux_stack should figure it out itself. We call kasan_record_aux_stack on call_rcu as well, and rcu structs can be anywhere. See: https://elixir.bootlin.com/linux/v5.10-rc4/source/mm/kasan/generic.c#L335