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