]> Git Repo - J-linux.git/blob - tools/tracing/rtla/src/osnoise.h
Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[J-linux.git] / tools / tracing / rtla / src / osnoise.h
1 // SPDX-License-Identifier: GPL-2.0
2 #include "trace.h"
3
4 /*
5  * osnoise_context - read, store, write, restore osnoise configs.
6  */
7 struct osnoise_context {
8         int                     flags;
9         int                     ref;
10
11         char                    *curr_cpus;
12         char                    *orig_cpus;
13
14         /* 0 as init value */
15         unsigned long long      orig_runtime_us;
16         unsigned long long      runtime_us;
17
18         /* 0 as init value */
19         unsigned long long      orig_period_us;
20         unsigned long long      period_us;
21
22         /* 0 as init value */
23         long long               orig_timerlat_period_us;
24         long long               timerlat_period_us;
25
26         /* 0 as init value */
27         long long               orig_tracing_thresh;
28         long long               tracing_thresh;
29
30         /* -1 as init value because 0 is disabled */
31         long long               orig_stop_us;
32         long long               stop_us;
33
34         /* -1 as init value because 0 is disabled */
35         long long               orig_stop_total_us;
36         long long               stop_total_us;
37
38         /* -1 as init value because 0 is disabled */
39         long long               orig_print_stack;
40         long long               print_stack;
41
42         /* -1 as init value because 0 is off */
43         int                     orig_opt_irq_disable;
44         int                     opt_irq_disable;
45
46         /* -1 as init value because 0 is off */
47         int                     orig_opt_workload;
48         int                     opt_workload;
49 };
50
51 /*
52  * *_INIT_VALs are also invalid values, they are used to
53  * communicate errors.
54  */
55 #define OSNOISE_OPTION_INIT_VAL (-1)
56 #define OSNOISE_TIME_INIT_VAL   (0)
57
58 struct osnoise_context *osnoise_context_alloc(void);
59 int osnoise_get_context(struct osnoise_context *context);
60 void osnoise_put_context(struct osnoise_context *context);
61
62 int osnoise_set_cpus(struct osnoise_context *context, char *cpus);
63 void osnoise_restore_cpus(struct osnoise_context *context);
64
65 int osnoise_set_runtime_period(struct osnoise_context *context,
66                                unsigned long long runtime,
67                                unsigned long long period);
68 void osnoise_restore_runtime_period(struct osnoise_context *context);
69
70 int osnoise_set_stop_us(struct osnoise_context *context,
71                         long long stop_us);
72 void osnoise_restore_stop_us(struct osnoise_context *context);
73
74 int osnoise_set_stop_total_us(struct osnoise_context *context,
75                               long long stop_total_us);
76 void osnoise_restore_stop_total_us(struct osnoise_context *context);
77
78 int osnoise_set_timerlat_period_us(struct osnoise_context *context,
79                                    long long timerlat_period_us);
80 void osnoise_restore_timerlat_period_us(struct osnoise_context *context);
81
82 int osnoise_set_tracing_thresh(struct osnoise_context *context,
83                                long long tracing_thresh);
84 void osnoise_restore_tracing_thresh(struct osnoise_context *context);
85
86 void osnoise_restore_print_stack(struct osnoise_context *context);
87 int osnoise_set_print_stack(struct osnoise_context *context,
88                             long long print_stack);
89
90 int osnoise_set_irq_disable(struct osnoise_context *context, bool onoff);
91 int osnoise_set_workload(struct osnoise_context *context, bool onoff);
92
93 /*
94  * osnoise_tool -  osnoise based tool definition.
95  */
96 struct osnoise_tool {
97         struct trace_instance           trace;
98         struct osnoise_context          *context;
99         void                            *data;
100         void                            *params;
101         time_t                          start_time;
102 };
103
104 void osnoise_destroy_tool(struct osnoise_tool *top);
105 struct osnoise_tool *osnoise_init_tool(char *tool_name);
106 struct osnoise_tool *osnoise_init_trace_tool(char *tracer);
107
108 int osnoise_hist_main(int argc, char *argv[]);
109 int osnoise_top_main(int argc, char **argv);
110 int osnoise_main(int argc, char **argv);
111 int hwnoise_main(int argc, char **argv);
This page took 0.031319 seconds and 4 git commands to generate.