1 // SPDX-License-Identifier: GPL-2.0 2 #include "osnoise.h" 3 4 struct timerlat_params { 5 /* Common params */ 6 char *cpus; 7 cpu_set_t monitored_cpus; 8 char *trace_output; 9 char *cgroup_name; 10 unsigned long long runtime; 11 long long stop_us; 12 long long stop_total_us; 13 long long timerlat_period_us; 14 long long print_stack; 15 int sleep_time; 16 int output_divisor; 17 int duration; 18 int set_sched; 19 int dma_latency; 20 int no_aa; 21 int dump_tasks; 22 int cgroup; 23 int hk_cpus; 24 int user_workload; 25 int kernel_workload; 26 int user_data; 27 int warmup; 28 int buffer_size; 29 int deepest_idle_state; 30 cpu_set_t hk_cpu_set; 31 struct sched_attr sched_param; 32 struct trace_events *events; 33 union { 34 struct { 35 /* top only */ 36 int quiet; 37 int aa_only; 38 int pretty_output; 39 }; 40 struct { 41 /* hist only */ 42 char no_irq; 43 char no_thread; 44 char no_header; 45 char no_summary; 46 char no_index; 47 char with_zeros; 48 int bucket_size; 49 int entries; 50 }; 51 }; 52 }; 53 54 int timerlat_apply_config(struct osnoise_tool *tool, struct timerlat_params *params); 55 56 int timerlat_hist_main(int argc, char *argv[]); 57 int timerlat_top_main(int argc, char *argv[]); 58 int timerlat_main(int argc, char *argv[]); 59