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

trace.h (2875B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
      3#define _TRACE_KVM_H
      4
      5#include <linux/tracepoint.h>
      6
      7#undef TRACE_SYSTEM
      8#define TRACE_SYSTEM kvm
      9
     10/*
     11 * Tracepoint for guest mode entry.
     12 */
     13TRACE_EVENT(kvm_ppc_instr,
     14	TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate),
     15	TP_ARGS(inst, _pc, emulate),
     16
     17	TP_STRUCT__entry(
     18		__field(	unsigned int,	inst		)
     19		__field(	unsigned long,	pc		)
     20		__field(	unsigned int,	emulate		)
     21	),
     22
     23	TP_fast_assign(
     24		__entry->inst		= inst;
     25		__entry->pc		= _pc;
     26		__entry->emulate	= emulate;
     27	),
     28
     29	TP_printk("inst %u pc 0x%lx emulate %u\n",
     30		  __entry->inst, __entry->pc, __entry->emulate)
     31);
     32
     33TRACE_EVENT(kvm_stlb_inval,
     34	TP_PROTO(unsigned int stlb_index),
     35	TP_ARGS(stlb_index),
     36
     37	TP_STRUCT__entry(
     38		__field(	unsigned int,	stlb_index	)
     39	),
     40
     41	TP_fast_assign(
     42		__entry->stlb_index	= stlb_index;
     43	),
     44
     45	TP_printk("stlb_index %u", __entry->stlb_index)
     46);
     47
     48TRACE_EVENT(kvm_stlb_write,
     49	TP_PROTO(unsigned int victim, unsigned int tid, unsigned int word0,
     50		 unsigned int word1, unsigned int word2),
     51	TP_ARGS(victim, tid, word0, word1, word2),
     52
     53	TP_STRUCT__entry(
     54		__field(	unsigned int,	victim		)
     55		__field(	unsigned int,	tid		)
     56		__field(	unsigned int,	word0		)
     57		__field(	unsigned int,	word1		)
     58		__field(	unsigned int,	word2		)
     59	),
     60
     61	TP_fast_assign(
     62		__entry->victim		= victim;
     63		__entry->tid		= tid;
     64		__entry->word0		= word0;
     65		__entry->word1		= word1;
     66		__entry->word2		= word2;
     67	),
     68
     69	TP_printk("victim %u tid %u w0 %u w1 %u w2 %u",
     70		__entry->victim, __entry->tid, __entry->word0,
     71		__entry->word1, __entry->word2)
     72);
     73
     74TRACE_EVENT(kvm_gtlb_write,
     75	TP_PROTO(unsigned int gtlb_index, unsigned int tid, unsigned int word0,
     76		 unsigned int word1, unsigned int word2),
     77	TP_ARGS(gtlb_index, tid, word0, word1, word2),
     78
     79	TP_STRUCT__entry(
     80		__field(	unsigned int,	gtlb_index	)
     81		__field(	unsigned int,	tid		)
     82		__field(	unsigned int,	word0		)
     83		__field(	unsigned int,	word1		)
     84		__field(	unsigned int,	word2		)
     85	),
     86
     87	TP_fast_assign(
     88		__entry->gtlb_index	= gtlb_index;
     89		__entry->tid		= tid;
     90		__entry->word0		= word0;
     91		__entry->word1		= word1;
     92		__entry->word2		= word2;
     93	),
     94
     95	TP_printk("gtlb_index %u tid %u w0 %u w1 %u w2 %u",
     96		__entry->gtlb_index, __entry->tid, __entry->word0,
     97		__entry->word1, __entry->word2)
     98);
     99
    100TRACE_EVENT(kvm_check_requests,
    101	TP_PROTO(struct kvm_vcpu *vcpu),
    102	TP_ARGS(vcpu),
    103
    104	TP_STRUCT__entry(
    105		__field(	__u32,	cpu_nr		)
    106		__field(	__u32,	requests	)
    107	),
    108
    109	TP_fast_assign(
    110		__entry->cpu_nr		= vcpu->vcpu_id;
    111		__entry->requests	= vcpu->requests;
    112	),
    113
    114	TP_printk("vcpu=%x requests=%x",
    115		__entry->cpu_nr, __entry->requests)
    116);
    117
    118#endif /* _TRACE_KVM_H */
    119
    120/* This part must be outside protection */
    121#undef TRACE_INCLUDE_PATH
    122#undef TRACE_INCLUDE_FILE
    123
    124#define TRACE_INCLUDE_PATH .
    125#define TRACE_INCLUDE_FILE trace
    126
    127#include <trace/define_trace.h>