0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM osnoise
0004
0005 #if !defined(_OSNOISE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _OSNOISE_TRACE_H
0007
0008 #include <linux/tracepoint.h>
0009 TRACE_EVENT(thread_noise,
0010
0011 TP_PROTO(struct task_struct *t, u64 start, u64 duration),
0012
0013 TP_ARGS(t, start, duration),
0014
0015 TP_STRUCT__entry(
0016 __array( char, comm, TASK_COMM_LEN)
0017 __field( u64, start )
0018 __field( u64, duration)
0019 __field( pid_t, pid )
0020 ),
0021
0022 TP_fast_assign(
0023 memcpy(__entry->comm, t->comm, TASK_COMM_LEN);
0024 __entry->pid = t->pid;
0025 __entry->start = start;
0026 __entry->duration = duration;
0027 ),
0028
0029 TP_printk("%8s:%d start %llu.%09u duration %llu ns",
0030 __entry->comm,
0031 __entry->pid,
0032 __print_ns_to_secs(__entry->start),
0033 __print_ns_without_secs(__entry->start),
0034 __entry->duration)
0035 );
0036
0037 TRACE_EVENT(softirq_noise,
0038
0039 TP_PROTO(int vector, u64 start, u64 duration),
0040
0041 TP_ARGS(vector, start, duration),
0042
0043 TP_STRUCT__entry(
0044 __field( u64, start )
0045 __field( u64, duration)
0046 __field( int, vector )
0047 ),
0048
0049 TP_fast_assign(
0050 __entry->vector = vector;
0051 __entry->start = start;
0052 __entry->duration = duration;
0053 ),
0054
0055 TP_printk("%8s:%d start %llu.%09u duration %llu ns",
0056 show_softirq_name(__entry->vector),
0057 __entry->vector,
0058 __print_ns_to_secs(__entry->start),
0059 __print_ns_without_secs(__entry->start),
0060 __entry->duration)
0061 );
0062
0063 TRACE_EVENT(irq_noise,
0064
0065 TP_PROTO(int vector, const char *desc, u64 start, u64 duration),
0066
0067 TP_ARGS(vector, desc, start, duration),
0068
0069 TP_STRUCT__entry(
0070 __field( u64, start )
0071 __field( u64, duration)
0072 __string( desc, desc )
0073 __field( int, vector )
0074
0075 ),
0076
0077 TP_fast_assign(
0078 __assign_str(desc, desc);
0079 __entry->vector = vector;
0080 __entry->start = start;
0081 __entry->duration = duration;
0082 ),
0083
0084 TP_printk("%s:%d start %llu.%09u duration %llu ns",
0085 __get_str(desc),
0086 __entry->vector,
0087 __print_ns_to_secs(__entry->start),
0088 __print_ns_without_secs(__entry->start),
0089 __entry->duration)
0090 );
0091
0092 TRACE_EVENT(nmi_noise,
0093
0094 TP_PROTO(u64 start, u64 duration),
0095
0096 TP_ARGS(start, duration),
0097
0098 TP_STRUCT__entry(
0099 __field( u64, start )
0100 __field( u64, duration)
0101 ),
0102
0103 TP_fast_assign(
0104 __entry->start = start;
0105 __entry->duration = duration;
0106 ),
0107
0108 TP_printk("start %llu.%09u duration %llu ns",
0109 __print_ns_to_secs(__entry->start),
0110 __print_ns_without_secs(__entry->start),
0111 __entry->duration)
0112 );
0113
0114 TRACE_EVENT(sample_threshold,
0115
0116 TP_PROTO(u64 start, u64 duration, u64 interference),
0117
0118 TP_ARGS(start, duration, interference),
0119
0120 TP_STRUCT__entry(
0121 __field( u64, start )
0122 __field( u64, duration)
0123 __field( u64, interference)
0124 ),
0125
0126 TP_fast_assign(
0127 __entry->start = start;
0128 __entry->duration = duration;
0129 __entry->interference = interference;
0130 ),
0131
0132 TP_printk("start %llu.%09u duration %llu ns interference %llu",
0133 __print_ns_to_secs(__entry->start),
0134 __print_ns_without_secs(__entry->start),
0135 __entry->duration,
0136 __entry->interference)
0137 );
0138
0139 #endif
0140
0141
0142 #include <trace/define_trace.h>