Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* _TRACE_OSNOISE_H */
0140 
0141 /* This part must be outside protection */
0142 #include <trace/define_trace.h>