xref: /linux/tools/tracing/rtla/src/timerlat.h (revision 4fa118e5b79fcc537dcb1a860ed319a6106935eb)
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