Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
Note: File does not exist in v5.4.
  1/* SPDX-License-Identifier: GPL-2.0 */
  2#undef TRACE_SYSTEM
  3#define TRACE_SYSTEM osnoise
  4
  5#if !defined(_OSNOISE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  6#define _OSNOISE_TRACE_H
  7
  8#include <linux/tracepoint.h>
  9TRACE_EVENT(thread_noise,
 10
 11	TP_PROTO(struct task_struct *t, u64 start, u64 duration),
 12
 13	TP_ARGS(t, start, duration),
 14
 15	TP_STRUCT__entry(
 16		__array(	char,		comm,	TASK_COMM_LEN)
 17		__field(	u64,		start	)
 18		__field(	u64,		duration)
 19		__field(	pid_t,		pid	)
 20	),
 21
 22	TP_fast_assign(
 23		memcpy(__entry->comm, t->comm, TASK_COMM_LEN);
 24		__entry->pid = t->pid;
 25		__entry->start = start;
 26		__entry->duration = duration;
 27	),
 28
 29	TP_printk("%8s:%d start %llu.%09u duration %llu ns",
 30		__entry->comm,
 31		__entry->pid,
 32		__print_ns_to_secs(__entry->start),
 33		__print_ns_without_secs(__entry->start),
 34		__entry->duration)
 35);
 36
 37TRACE_EVENT(softirq_noise,
 38
 39	TP_PROTO(int vector, u64 start, u64 duration),
 40
 41	TP_ARGS(vector, start, duration),
 42
 43	TP_STRUCT__entry(
 44		__field(	u64,		start	)
 45		__field(	u64,		duration)
 46		__field(	int,		vector	)
 47	),
 48
 49	TP_fast_assign(
 50		__entry->vector = vector;
 51		__entry->start = start;
 52		__entry->duration = duration;
 53	),
 54
 55	TP_printk("%8s:%d start %llu.%09u duration %llu ns",
 56		show_softirq_name(__entry->vector),
 57		__entry->vector,
 58		__print_ns_to_secs(__entry->start),
 59		__print_ns_without_secs(__entry->start),
 60		__entry->duration)
 61);
 62
 63TRACE_EVENT(irq_noise,
 64
 65	TP_PROTO(int vector, const char *desc, u64 start, u64 duration),
 66
 67	TP_ARGS(vector, desc, start, duration),
 68
 69	TP_STRUCT__entry(
 70		__field(	u64,		start	)
 71		__field(	u64,		duration)
 72		__string(	desc,		desc    )
 73		__field(	int,		vector	)
 74
 75	),
 76
 77	TP_fast_assign(
 78		__assign_str(desc, desc);
 79		__entry->vector = vector;
 80		__entry->start = start;
 81		__entry->duration = duration;
 82	),
 83
 84	TP_printk("%s:%d start %llu.%09u duration %llu ns",
 85		__get_str(desc),
 86		__entry->vector,
 87		__print_ns_to_secs(__entry->start),
 88		__print_ns_without_secs(__entry->start),
 89		__entry->duration)
 90);
 91
 92TRACE_EVENT(nmi_noise,
 93
 94	TP_PROTO(u64 start, u64 duration),
 95
 96	TP_ARGS(start, duration),
 97
 98	TP_STRUCT__entry(
 99		__field(	u64,		start	)
100		__field(	u64,		duration)
101	),
102
103	TP_fast_assign(
104		__entry->start = start;
105		__entry->duration = duration;
106	),
107
108	TP_printk("start %llu.%09u duration %llu ns",
109		__print_ns_to_secs(__entry->start),
110		__print_ns_without_secs(__entry->start),
111		__entry->duration)
112);
113
114TRACE_EVENT(sample_threshold,
115
116	TP_PROTO(u64 start, u64 duration, u64 interference),
117
118	TP_ARGS(start, duration, interference),
119
120	TP_STRUCT__entry(
121		__field(	u64,		start	)
122		__field(	u64,		duration)
123		__field(	u64,		interference)
124	),
125
126	TP_fast_assign(
127		__entry->start = start;
128		__entry->duration = duration;
129		__entry->interference = interference;
130	),
131
132	TP_printk("start %llu.%09u duration %llu ns interference %llu",
133		__print_ns_to_secs(__entry->start),
134		__print_ns_without_secs(__entry->start),
135		__entry->duration,
136		__entry->interference)
137);
138
139#endif /* _TRACE_OSNOISE_H */
140
141/* This part must be outside protection */
142#include <trace/define_trace.h>