linux/include/trace/events/osnoise.h
<<
>>
Prefs
   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>
 143