Message ID | 20190418084254.910579307@linutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | stacktrace: Consolidate stack trace usage | expand |
[ Added Tom Zanussi ] On Thu, 18 Apr 2019 10:41:39 +0200 Thomas Gleixner <tglx@linutronix.de> wrote: > The indirection through struct stack_trace is not necessary at all. Use the > storage array based interface. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Cc: Steven Rostedt <rostedt@goodmis.org> Looks fine to me Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> But... Tom, Can you review this too? Patch series starts here: http://lkml.kernel.org/r/20190418084119.056416939@linutronix.de Thanks, -- Steve > --- > kernel/trace/trace_events_hist.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > --- a/kernel/trace/trace_events_hist.c > +++ b/kernel/trace/trace_events_hist.c > @@ -5186,7 +5186,6 @@ static void event_hist_trigger(struct ev > u64 var_ref_vals[TRACING_MAP_VARS_MAX]; > char compound_key[HIST_KEY_SIZE_MAX]; > struct tracing_map_elt *elt = NULL; > - struct stack_trace stacktrace; > struct hist_field *key_field; > u64 field_contents; > void *key = NULL; > @@ -5198,14 +5197,9 @@ static void event_hist_trigger(struct ev > key_field = hist_data->fields[i]; > > if (key_field->flags & HIST_FIELD_FL_STACKTRACE) { > - stacktrace.max_entries = HIST_STACKTRACE_DEPTH; > - stacktrace.entries = entries; > - stacktrace.nr_entries = 0; > - stacktrace.skip = HIST_STACKTRACE_SKIP; > - > - memset(stacktrace.entries, 0, HIST_STACKTRACE_SIZE); > - save_stack_trace(&stacktrace); > - > + memset(entries, 0, HIST_STACKTRACE_SIZE); > + stack_trace_save(entries, HIST_STACKTRACE_DEPTH, > + HIST_STACKTRACE_SKIP); > key = entries; > } else { > field_contents = key_field->fn(key_field, elt, rbe, rec); >
On Thu, 2019-04-18 at 09:40 -0400, Steven Rostedt wrote: > [ Added Tom Zanussi ] > > On Thu, 18 Apr 2019 10:41:39 +0200 > Thomas Gleixner <tglx@linutronix.de> wrote: > > > The indirection through struct stack_trace is not necessary at all. > > Use the > > storage array based interface. > > > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > > Cc: Steven Rostedt <rostedt@goodmis.org> > > Looks fine to me > > Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> > > But... > > Tom, > > Can you review this too? Looks good to me too! Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com> > > Patch series starts here: > > http://lkml.kernel.org/r/20190418084119.056416939@linutronix.de > > Thanks, > > -- Steve > > > --- > > kernel/trace/trace_events_hist.c | 12 +++--------- > > 1 file changed, 3 insertions(+), 9 deletions(-) > > > > --- a/kernel/trace/trace_events_hist.c > > +++ b/kernel/trace/trace_events_hist.c > > @@ -5186,7 +5186,6 @@ static void event_hist_trigger(struct ev > > u64 var_ref_vals[TRACING_MAP_VARS_MAX]; > > char compound_key[HIST_KEY_SIZE_MAX]; > > struct tracing_map_elt *elt = NULL; > > - struct stack_trace stacktrace; > > struct hist_field *key_field; > > u64 field_contents; > > void *key = NULL; > > @@ -5198,14 +5197,9 @@ static void event_hist_trigger(struct ev > > key_field = hist_data->fields[i]; > > > > if (key_field->flags & HIST_FIELD_FL_STACKTRACE) { > > - stacktrace.max_entries = HIST_STACKTRACE_DEPTH; > > - stacktrace.entries = entries; > > - stacktrace.nr_entries = 0; > > - stacktrace.skip = HIST_STACKTRACE_SKIP; > > - > > - memset(stacktrace.entries, 0, > > HIST_STACKTRACE_SIZE); > > - save_stack_trace(&stacktrace); > > - > > + memset(entries, 0, HIST_STACKTRACE_SIZE); > > + stack_trace_save(entries, > > HIST_STACKTRACE_DEPTH, > > + HIST_STACKTRACE_SKIP); > > key = entries; > > } else { > > field_contents = key_field->fn(key_field, elt, > > rbe, rec); > > > >
On Thu, 18 Apr 2019 14:58:55 -0500 Tom Zanussi <tom.zanussi@linux.intel.com> wrote: > > Tom, > > > > Can you review this too? > > Looks good to me too! > > Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com> > Would you be OK to upgrade this to a Reviewed-by tag? Thanks! -- Steve
Hi Steve, On Thu, 2019-04-18 at 16:13 -0400, Steven Rostedt wrote: > On Thu, 18 Apr 2019 14:58:55 -0500 > Tom Zanussi <tom.zanussi@linux.intel.com> wrote: > > > > Tom, > > > > > > Can you review this too? > > > > Looks good to me too! > > > > Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com> > > > > Would you be OK to upgrade this to a Reviewed-by tag? > Yeah, I did review it and even tested it, so: Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com> Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com> Tom > Thanks! > > -- Steve
--- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -5186,7 +5186,6 @@ static void event_hist_trigger(struct ev u64 var_ref_vals[TRACING_MAP_VARS_MAX]; char compound_key[HIST_KEY_SIZE_MAX]; struct tracing_map_elt *elt = NULL; - struct stack_trace stacktrace; struct hist_field *key_field; u64 field_contents; void *key = NULL; @@ -5198,14 +5197,9 @@ static void event_hist_trigger(struct ev key_field = hist_data->fields[i]; if (key_field->flags & HIST_FIELD_FL_STACKTRACE) { - stacktrace.max_entries = HIST_STACKTRACE_DEPTH; - stacktrace.entries = entries; - stacktrace.nr_entries = 0; - stacktrace.skip = HIST_STACKTRACE_SKIP; - - memset(stacktrace.entries, 0, HIST_STACKTRACE_SIZE); - save_stack_trace(&stacktrace); - + memset(entries, 0, HIST_STACKTRACE_SIZE); + stack_trace_save(entries, HIST_STACKTRACE_DEPTH, + HIST_STACKTRACE_SKIP); key = entries; } else { field_contents = key_field->fn(key_field, elt, rbe, rec);
The indirection through struct stack_trace is not necessary at all. Use the storage array based interface. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Steven Rostedt <rostedt@goodmis.org> --- kernel/trace/trace_events_hist.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)