cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

osnoise.h (3010B)


      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>