[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190410230759.7a0c2c10@oasis.local.home>
Date: Wed, 10 Apr 2019 23:07:59 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Josh Poimboeuf <jpoimboe@...hat.com>
Cc: Thomas Gleixner <tglx@...utronix.de>,
LKML <linux-kernel@...r.kernel.org>, x86@...nel.org,
Andy Lutomirski <luto@...nel.org>,
Alexander Potapenko <glider@...gle.com>
Subject: Re: [RFC patch 16/41] tracing: Remove the ULONG_MAX stack trace
hackery
On Wed, 10 Apr 2019 21:34:25 -0500
Josh Poimboeuf <jpoimboe@...hat.com> wrote:
> > --- a/kernel/trace/trace_stack.c
> > +++ b/kernel/trace/trace_stack.c
> > @@ -18,8 +18,7 @@
> >
> > #include "trace.h"
> >
> > -static unsigned long stack_dump_trace[STACK_TRACE_ENTRIES+1] =
> > - { [0 ... (STACK_TRACE_ENTRIES)] = ULONG_MAX };
> > +static unsigned long stack_dump_trace[STACK_TRACE_ENTRIES + 1];
>
> Is the "+ 1" still needed? AFAICT, accesses to this array never go past
> nr_entries.
Probably not. But see this for an explanation:
http://lkml.kernel.org/r/20180620110758.crunhd5bfep7zuiz@kili.mountain
>
> Also I've been staring at the code but I can't figure out why
> max_entries is "- 1".
>
> struct stack_trace stack_trace_max = {
> .max_entries = STACK_TRACE_ENTRIES - 1,
> .entries = &stack_dump_trace[0],
> };
>
Well, it had a reason in the past, but there doesn't seem to be a
reason today. Looking at git history, that code was originally:
.max_entries = STACK_TRACE_ENTRIES - 1,
.entries = &stack_dump_trace[1],
Where we had to make max_entries -1 as we started at the first index
into the array.
I'll have to take a new look into this code. After Thomas's clean up
here, I'm sure we can simplify it a bit more.
-- Steve
Powered by blists - more mailing lists