Re: [PATCH v4 3/6] kasan: print timer and workqueue stack

From: Alexander Potapenko
Date: Thu Sep 24 2020 - 08:11:27 EST


On Thu, Sep 24, 2020 at 1:55 PM Marco Elver <elver@xxxxxxxxxx> wrote:
>
> On Thu, 24 Sep 2020 at 13:47, Alexander Potapenko <glider@xxxxxxxxxx> wrote:
> >
> > On Thu, Sep 24, 2020 at 6:05 AM Walter Wu <walter-zh.wu@xxxxxxxxxxxx> wrote:
> > >
> > > The aux_stack[2] is reused to record the call_rcu() call stack,
> > > timer init call stack, and enqueuing work call stacks. So that
> > > we need to change the auxiliary stack title for common title,
> > > print them in KASAN report.
> > >
> > > Signed-off-by: Walter Wu <walter-zh.wu@xxxxxxxxxxxx>
> > > Suggested-by: Marco Elver <elver@xxxxxxxxxx>
> > > Acked-by: Marco Elver <elver@xxxxxxxxxx>
> > > Reviewed-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
> > > Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
> > > Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
> > > Cc: Alexander Potapenko <glider@xxxxxxxxxx>
> > > ---
> > >
> > > v2:
> > > - Thanks for Marco suggestion.
> > > - We modify aux stack title name in KASAN report
> > > in order to print call_rcu()/timer/workqueue stack.
> > >
> > > ---
> > > mm/kasan/report.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c
> > > index 4f49fa6cd1aa..886809d0a8dd 100644
> > > --- a/mm/kasan/report.c
> > > +++ b/mm/kasan/report.c
> > > @@ -183,12 +183,12 @@ static void describe_object(struct kmem_cache *cache, void *object,
> > >
> > > #ifdef CONFIG_KASAN_GENERIC
> > > if (alloc_info->aux_stack[0]) {
> > > - pr_err("Last call_rcu():\n");
> > > + pr_err("Last potentially related work creation:\n");
> >
> > This doesn't have to be a work creation (expect more callers of
> > kasan_record_aux_stack() in the future), so maybe change the wording
> > here to "Last potentially related auxiliary stack"?
>
> I suggested "work creation" as it's the most precise for what it is
> used for now.

I see, then maybe my suggestion is premature.

> What other users do you have in mind in future that are not work creation?

I think saving stacks may help in any case where an object is reused
for a different purpose without reallocation.
SKBs, maybe?


--
Alexander Potapenko
Software Engineer

Google Germany GmbH
Erika-Mann-Straße, 33
80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg