On Thu, 20 Mar 2025, Tomas Glozar wrote: > Instead of having separate structs osnoise_top_params and > osnoise_hist_params, use one struct osnoise_params for both. > > This allows code using the structs to be shared between osnoise-top and > osnoise-hist. > > Signed-off-by: Tomas Glozar <[email protected]> > --- > tools/tracing/rtla/src/osnoise.c | 1 - > tools/tracing/rtla/src/osnoise.h | 47 +++++++++++++++++++++++ > tools/tracing/rtla/src/osnoise_hist.c | 52 ++++++-------------------- > tools/tracing/rtla/src/osnoise_top.c | 54 +++++---------------------- > tools/tracing/rtla/src/timerlat.h | 1 - > 5 files changed, 68 insertions(+), 87 deletions(-) > > diff --git a/tools/tracing/rtla/src/osnoise.c > b/tools/tracing/rtla/src/osnoise.c > index 85f398b89597..93d485c0e949 100644 > --- a/tools/tracing/rtla/src/osnoise.c > +++ b/tools/tracing/rtla/src/osnoise.c > @@ -14,7 +14,6 @@ > #include <stdio.h> > > #include "osnoise.h" > -#include "utils.h" > > /* > * osnoise_get_cpus - return the original "osnoise/cpus" content > diff --git a/tools/tracing/rtla/src/osnoise.h > b/tools/tracing/rtla/src/osnoise.h > index 056c8b113dee..f78ffbdc8c8d 100644 > --- a/tools/tracing/rtla/src/osnoise.h > +++ b/tools/tracing/rtla/src/osnoise.h > @@ -1,8 +1,55 @@ > // SPDX-License-Identifier: GPL-2.0 > #pragma once > > +#include "utils.h" > #include "trace.h" > > +enum osnoise_mode { > + MODE_OSNOISE = 0, > + MODE_HWNOISE > +}; > + > +struct osnoise_params { > + /* Common params */ > + char *cpus; > + cpu_set_t monitored_cpus; > + char *trace_output; > + char *cgroup_name; > + unsigned long long runtime; > + unsigned long long period; > + long long threshold; > + long long stop_us; > + long long stop_total_us; > + int sleep_time; > + int duration; > + int set_sched; > + int cgroup; > + int hk_cpus; > + cpu_set_t hk_cpu_set; > + struct sched_attr sched_param; > + struct trace_events *events; > + int warmup; > + int buffer_size; > + union { > + struct { > + /* top only */ > + int quiet; > + int pretty_output; > + enum osnoise_mode mode; > + }; > + struct { > + /* hist only */ > + int output_divisor; > + char no_header; > + char no_summary; > + char no_index; > + char with_zeros; > + int bucket_size; > + int entries; > + }; > + }; > +}; > + > /* > * osnoise_context - read, store, write, restore osnoise configs. > */ > diff --git a/tools/tracing/rtla/src/osnoise_hist.c > b/tools/tracing/rtla/src/osnoise_hist.c > index f4c9051c33c4..4721f15f77cd 100644 > --- a/tools/tracing/rtla/src/osnoise_hist.c > +++ b/tools/tracing/rtla/src/osnoise_hist.c > @@ -14,38 +14,8 @@ > #include <time.h> > #include <sched.h> > > -#include "utils.h" > #include "osnoise.h" > > -struct osnoise_hist_params { > - char *cpus; > - cpu_set_t monitored_cpus; > - char *trace_output; > - char *cgroup_name; > - unsigned long long runtime; > - unsigned long long period; > - long long threshold; > - long long stop_us; > - long long stop_total_us; > - int sleep_time; > - int duration; > - int set_sched; > - int output_divisor; > - int cgroup; > - int hk_cpus; > - cpu_set_t hk_cpu_set; > - struct sched_attr sched_param; > - struct trace_events *events; > - char no_header; > - char no_summary; > - char no_index; > - char with_zeros; > - int bucket_size; > - int entries; > - int warmup; > - int buffer_size; > -}; > - > struct osnoise_hist_cpu { > int *samples; > int count; > @@ -126,7 +96,7 @@ static struct osnoise_hist_data > static void osnoise_hist_update_multiple(struct osnoise_tool *tool, int cpu, > unsigned long long duration, int count) > { > - struct osnoise_hist_params *params = tool->params; > + struct osnoise_params *params = tool->params; > struct osnoise_hist_data *data = tool->data; > unsigned long long total_duration; > int entries = data->entries; > @@ -168,7 +138,7 @@ static void osnoise_destroy_trace_hist(struct > osnoise_tool *tool) > */ > static int osnoise_init_trace_hist(struct osnoise_tool *tool) > { > - struct osnoise_hist_params *params = tool->params; > + struct osnoise_params *params = tool->params; > struct osnoise_hist_data *data = tool->data; > int bucket_size; > char buff[128]; > @@ -253,7 +223,7 @@ static void osnoise_read_trace_hist(struct osnoise_tool > *tool) > */ > static void osnoise_hist_header(struct osnoise_tool *tool) > { > - struct osnoise_hist_params *params = tool->params; > + struct osnoise_params *params = tool->params; > struct osnoise_hist_data *data = tool->data; > struct trace_seq *s = tool->trace.seq; > char duration[26]; > @@ -292,7 +262,7 @@ static void osnoise_hist_header(struct osnoise_tool *tool) > * osnoise_print_summary - print the summary of the hist data to the output > */ > static void > -osnoise_print_summary(struct osnoise_hist_params *params, > +osnoise_print_summary(struct osnoise_params *params, > struct trace_instance *trace, > struct osnoise_hist_data *data) > { > @@ -370,7 +340,7 @@ osnoise_print_summary(struct osnoise_hist_params *params, > * osnoise_print_stats - print data for all CPUs > */ > static void > -osnoise_print_stats(struct osnoise_hist_params *params, struct osnoise_tool > *tool) > +osnoise_print_stats(struct osnoise_params *params, struct osnoise_tool *tool) > { > struct osnoise_hist_data *data = tool->data; > struct trace_instance *trace = &tool->trace; > @@ -508,10 +478,10 @@ static void osnoise_hist_usage(char *usage) > /* > * osnoise_hist_parse_args - allocs, parse and fill the cmd line parameters > */ > -static struct osnoise_hist_params > +static struct osnoise_params > *osnoise_hist_parse_args(int argc, char *argv[]) > { > - struct osnoise_hist_params *params; > + struct osnoise_params *params; > struct trace_events *tevent; > int retval; > int c; > @@ -731,7 +701,7 @@ static struct osnoise_hist_params > * osnoise_hist_apply_config - apply the hist configs to the initialized tool > */ > static int > -osnoise_hist_apply_config(struct osnoise_tool *tool, struct > osnoise_hist_params *params) > +osnoise_hist_apply_config(struct osnoise_tool *tool, struct osnoise_params > *params) > { > int retval; > > @@ -808,7 +778,7 @@ osnoise_hist_apply_config(struct osnoise_tool *tool, > struct osnoise_hist_params > * osnoise_init_hist - initialize a osnoise hist tool with parameters > */ > static struct osnoise_tool > -*osnoise_init_hist(struct osnoise_hist_params *params) > +*osnoise_init_hist(struct osnoise_params *params) > { > struct osnoise_tool *tool; > int nr_cpus; > @@ -842,7 +812,7 @@ static void stop_hist(int sig) > * osnoise_hist_set_signals - handles the signal to stop the tool > */ > static void > -osnoise_hist_set_signals(struct osnoise_hist_params *params) > +osnoise_hist_set_signals(struct osnoise_params *params) > { > signal(SIGINT, stop_hist); > if (params->duration) { > @@ -853,7 +823,7 @@ osnoise_hist_set_signals(struct osnoise_hist_params > *params) > > int osnoise_hist_main(int argc, char *argv[]) > { > - struct osnoise_hist_params *params; > + struct osnoise_params *params; > struct osnoise_tool *record = NULL; > struct osnoise_tool *tool = NULL; > struct trace_instance *trace; > diff --git a/tools/tracing/rtla/src/osnoise_top.c > b/tools/tracing/rtla/src/osnoise_top.c > index dacec2f99017..7f393019bbf5 100644 > --- a/tools/tracing/rtla/src/osnoise_top.c > +++ b/tools/tracing/rtla/src/osnoise_top.c > @@ -14,40 +14,6 @@ > #include <sched.h> > > #include "osnoise.h" > -#include "utils.h" > - > -enum osnoise_mode { > - MODE_OSNOISE = 0, > - MODE_HWNOISE > -}; > - > -/* > - * osnoise top parameters > - */ > -struct osnoise_top_params { > - char *cpus; > - cpu_set_t monitored_cpus; > - char *trace_output; > - char *cgroup_name; > - unsigned long long runtime; > - unsigned long long period; > - long long threshold; > - long long stop_us; > - long long stop_total_us; > - int sleep_time; > - int duration; > - int quiet; > - int set_sched; > - int cgroup; > - int hk_cpus; > - int warmup; > - int buffer_size; > - int pretty_output; > - cpu_set_t hk_cpu_set; > - struct sched_attr sched_param; > - struct trace_events *events; > - enum osnoise_mode mode; > -}; > > struct osnoise_top_cpu { > unsigned long long sum_runtime; > @@ -158,7 +124,7 @@ osnoise_top_handler(struct trace_seq *s, struct > tep_record *record, > */ > static void osnoise_top_header(struct osnoise_tool *top) > { > - struct osnoise_top_params *params = top->params; > + struct osnoise_params *params = top->params; > struct trace_seq *s = top->trace.seq; > char duration[26]; > > @@ -218,7 +184,7 @@ static void clear_terminal(struct trace_seq *seq) > */ > static void osnoise_top_print(struct osnoise_tool *tool, int cpu) > { > - struct osnoise_top_params *params = tool->params; > + struct osnoise_params *params = tool->params; > struct trace_seq *s = tool->trace.seq; > struct osnoise_top_cpu *cpu_data; > struct osnoise_top_data *data; > @@ -258,7 +224,7 @@ static void osnoise_top_print(struct osnoise_tool *tool, > int cpu) > * osnoise_print_stats - print data for all cpus > */ > static void > -osnoise_print_stats(struct osnoise_top_params *params, struct osnoise_tool > *top) > +osnoise_print_stats(struct osnoise_params *params, struct osnoise_tool *top) > { > struct trace_instance *trace = &top->trace; > static int nr_cpus = -1; > @@ -286,7 +252,7 @@ osnoise_print_stats(struct osnoise_top_params *params, > struct osnoise_tool *top) > /* > * osnoise_top_usage - prints osnoise top usage message > */ > -static void osnoise_top_usage(struct osnoise_top_params *params, char *usage) > +static void osnoise_top_usage(struct osnoise_params *params, char *usage) > { > int i; > > @@ -354,9 +320,9 @@ static void osnoise_top_usage(struct osnoise_top_params > *params, char *usage) > /* > * osnoise_top_parse_args - allocs, parse and fill the cmd line parameters > */ > -struct osnoise_top_params *osnoise_top_parse_args(int argc, char **argv) > +struct osnoise_params *osnoise_top_parse_args(int argc, char **argv) > { > - struct osnoise_top_params *params; > + struct osnoise_params *params; > struct trace_events *tevent; > int retval; > int c; > @@ -553,7 +519,7 @@ struct osnoise_top_params *osnoise_top_parse_args(int > argc, char **argv) > * osnoise_top_apply_config - apply the top configs to the initialized tool > */ > static int > -osnoise_top_apply_config(struct osnoise_tool *tool, struct > osnoise_top_params *params) > +osnoise_top_apply_config(struct osnoise_tool *tool, struct osnoise_params > *params) > { > int retval; > > @@ -640,7 +606,7 @@ osnoise_top_apply_config(struct osnoise_tool *tool, > struct osnoise_top_params *p > /* > * osnoise_init_top - initialize a osnoise top tool with parameters > */ > -struct osnoise_tool *osnoise_init_top(struct osnoise_top_params *params) > +struct osnoise_tool *osnoise_init_top(struct osnoise_params *params) > { > struct osnoise_tool *tool; > int nr_cpus; > @@ -674,7 +640,7 @@ static void stop_top(int sig) > /* > * osnoise_top_set_signals - handles the signal to stop the tool > */ > -static void osnoise_top_set_signals(struct osnoise_top_params *params) > +static void osnoise_top_set_signals(struct osnoise_params *params) > { > signal(SIGINT, stop_top); > if (params->duration) { > @@ -685,7 +651,7 @@ static void osnoise_top_set_signals(struct > osnoise_top_params *params) > > int osnoise_top_main(int argc, char **argv) > { > - struct osnoise_top_params *params; > + struct osnoise_params *params; > struct osnoise_tool *record = NULL; > struct osnoise_tool *tool = NULL; > struct trace_instance *trace; > diff --git a/tools/tracing/rtla/src/timerlat.h > b/tools/tracing/rtla/src/timerlat.h > index e452d385cb0f..cadc613dc82e 100644 > --- a/tools/tracing/rtla/src/timerlat.h > +++ b/tools/tracing/rtla/src/timerlat.h > @@ -1,5 +1,4 @@ > // SPDX-License-Identifier: GPL-2.0 > -#include "utils.h" > #include "osnoise.h" > > struct timerlat_params { > -- Reviewed-by: John Kacur <[email protected]>
