Linux Audio

Check our new training course

Linux debugging, profiling, tracing and performance analysis training

Mar 24-27, 2025, special US time zones
Register
Loading...
v6.2
 1// SPDX-License-Identifier: GPL-2.0
 2#include "trace.h"
 3
 4/*
 5 * osnoise_context - read, store, write, restore osnoise configs.
 6 */
 7struct 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
43/*
44 * *_INIT_VALs are also invalid values, they are used to
45 * communicate errors.
46 */
47#define OSNOISE_OPTION_INIT_VAL	(-1)
48#define OSNOISE_TIME_INIT_VAL	(0)
49
50struct osnoise_context *osnoise_context_alloc(void);
51int osnoise_get_context(struct osnoise_context *context);
52void osnoise_put_context(struct osnoise_context *context);
53
54int osnoise_set_cpus(struct osnoise_context *context, char *cpus);
55void osnoise_restore_cpus(struct osnoise_context *context);
56
57int osnoise_set_runtime_period(struct osnoise_context *context,
58			       unsigned long long runtime,
59			       unsigned long long period);
60void osnoise_restore_runtime_period(struct osnoise_context *context);
61
62int osnoise_set_stop_us(struct osnoise_context *context,
63			long long stop_us);
64void osnoise_restore_stop_us(struct osnoise_context *context);
65
66int osnoise_set_stop_total_us(struct osnoise_context *context,
67			      long long stop_total_us);
68void osnoise_restore_stop_total_us(struct osnoise_context *context);
69
70int osnoise_set_timerlat_period_us(struct osnoise_context *context,
71				   long long timerlat_period_us);
72void osnoise_restore_timerlat_period_us(struct osnoise_context *context);
73
74int osnoise_set_tracing_thresh(struct osnoise_context *context,
75			       long long tracing_thresh);
76void osnoise_restore_tracing_thresh(struct osnoise_context *context);
77
78void osnoise_restore_print_stack(struct osnoise_context *context);
79int osnoise_set_print_stack(struct osnoise_context *context,
80			    long long print_stack);
81
 
 
 
82/*
83 * osnoise_tool -  osnoise based tool definition.
84 */
85struct osnoise_tool {
86	struct trace_instance		trace;
87	struct osnoise_context		*context;
88	void				*data;
89	void				*params;
90	time_t				start_time;
91};
92
93void osnoise_destroy_tool(struct osnoise_tool *top);
94struct osnoise_tool *osnoise_init_tool(char *tool_name);
95struct osnoise_tool *osnoise_init_trace_tool(char *tracer);
96
97int osnoise_hist_main(int argc, char *argv[]);
98int osnoise_top_main(int argc, char **argv);
99int osnoise_main(int argc, char **argv);
v6.8
  1// SPDX-License-Identifier: GPL-2.0
  2#include "trace.h"
  3
  4/*
  5 * osnoise_context - read, store, write, restore osnoise configs.
  6 */
  7struct 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
 58struct osnoise_context *osnoise_context_alloc(void);
 59int osnoise_get_context(struct osnoise_context *context);
 60void osnoise_put_context(struct osnoise_context *context);
 61
 62int osnoise_set_cpus(struct osnoise_context *context, char *cpus);
 63void osnoise_restore_cpus(struct osnoise_context *context);
 64
 65int osnoise_set_runtime_period(struct osnoise_context *context,
 66			       unsigned long long runtime,
 67			       unsigned long long period);
 68void osnoise_restore_runtime_period(struct osnoise_context *context);
 69
 70int osnoise_set_stop_us(struct osnoise_context *context,
 71			long long stop_us);
 72void osnoise_restore_stop_us(struct osnoise_context *context);
 73
 74int osnoise_set_stop_total_us(struct osnoise_context *context,
 75			      long long stop_total_us);
 76void osnoise_restore_stop_total_us(struct osnoise_context *context);
 77
 78int osnoise_set_timerlat_period_us(struct osnoise_context *context,
 79				   long long timerlat_period_us);
 80void osnoise_restore_timerlat_period_us(struct osnoise_context *context);
 81
 82int osnoise_set_tracing_thresh(struct osnoise_context *context,
 83			       long long tracing_thresh);
 84void osnoise_restore_tracing_thresh(struct osnoise_context *context);
 85
 86void osnoise_restore_print_stack(struct osnoise_context *context);
 87int osnoise_set_print_stack(struct osnoise_context *context,
 88			    long long print_stack);
 89
 90int osnoise_set_irq_disable(struct osnoise_context *context, bool onoff);
 91int osnoise_set_workload(struct osnoise_context *context, bool onoff);
 92
 93/*
 94 * osnoise_tool -  osnoise based tool definition.
 95 */
 96struct 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
104void osnoise_destroy_tool(struct osnoise_tool *top);
105struct osnoise_tool *osnoise_init_tool(char *tool_name);
106struct osnoise_tool *osnoise_init_trace_tool(char *tracer);
107
108int osnoise_hist_main(int argc, char *argv[]);
109int osnoise_top_main(int argc, char **argv);
110int osnoise_main(int argc, char **argv);
111int hwnoise_main(int argc, char **argv);