Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
0003 #define _TRACE_KVM_H
0004 
0005 #include <linux/tracepoint.h>
0006 
0007 #undef TRACE_SYSTEM
0008 #define TRACE_SYSTEM kvm
0009 
0010 /*
0011  * Tracepoint for guest mode entry.
0012  */
0013 TRACE_EVENT(kvm_ppc_instr,
0014     TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate),
0015     TP_ARGS(inst, _pc, emulate),
0016 
0017     TP_STRUCT__entry(
0018         __field(    unsigned int,   inst        )
0019         __field(    unsigned long,  pc      )
0020         __field(    unsigned int,   emulate     )
0021     ),
0022 
0023     TP_fast_assign(
0024         __entry->inst       = inst;
0025         __entry->pc     = _pc;
0026         __entry->emulate    = emulate;
0027     ),
0028 
0029     TP_printk("inst %u pc 0x%lx emulate %u\n",
0030           __entry->inst, __entry->pc, __entry->emulate)
0031 );
0032 
0033 TRACE_EVENT(kvm_stlb_inval,
0034     TP_PROTO(unsigned int stlb_index),
0035     TP_ARGS(stlb_index),
0036 
0037     TP_STRUCT__entry(
0038         __field(    unsigned int,   stlb_index  )
0039     ),
0040 
0041     TP_fast_assign(
0042         __entry->stlb_index = stlb_index;
0043     ),
0044 
0045     TP_printk("stlb_index %u", __entry->stlb_index)
0046 );
0047 
0048 TRACE_EVENT(kvm_stlb_write,
0049     TP_PROTO(unsigned int victim, unsigned int tid, unsigned int word0,
0050          unsigned int word1, unsigned int word2),
0051     TP_ARGS(victim, tid, word0, word1, word2),
0052 
0053     TP_STRUCT__entry(
0054         __field(    unsigned int,   victim      )
0055         __field(    unsigned int,   tid     )
0056         __field(    unsigned int,   word0       )
0057         __field(    unsigned int,   word1       )
0058         __field(    unsigned int,   word2       )
0059     ),
0060 
0061     TP_fast_assign(
0062         __entry->victim     = victim;
0063         __entry->tid        = tid;
0064         __entry->word0      = word0;
0065         __entry->word1      = word1;
0066         __entry->word2      = word2;
0067     ),
0068 
0069     TP_printk("victim %u tid %u w0 %u w1 %u w2 %u",
0070         __entry->victim, __entry->tid, __entry->word0,
0071         __entry->word1, __entry->word2)
0072 );
0073 
0074 TRACE_EVENT(kvm_gtlb_write,
0075     TP_PROTO(unsigned int gtlb_index, unsigned int tid, unsigned int word0,
0076          unsigned int word1, unsigned int word2),
0077     TP_ARGS(gtlb_index, tid, word0, word1, word2),
0078 
0079     TP_STRUCT__entry(
0080         __field(    unsigned int,   gtlb_index  )
0081         __field(    unsigned int,   tid     )
0082         __field(    unsigned int,   word0       )
0083         __field(    unsigned int,   word1       )
0084         __field(    unsigned int,   word2       )
0085     ),
0086 
0087     TP_fast_assign(
0088         __entry->gtlb_index = gtlb_index;
0089         __entry->tid        = tid;
0090         __entry->word0      = word0;
0091         __entry->word1      = word1;
0092         __entry->word2      = word2;
0093     ),
0094 
0095     TP_printk("gtlb_index %u tid %u w0 %u w1 %u w2 %u",
0096         __entry->gtlb_index, __entry->tid, __entry->word0,
0097         __entry->word1, __entry->word2)
0098 );
0099 
0100 TRACE_EVENT(kvm_check_requests,
0101     TP_PROTO(struct kvm_vcpu *vcpu),
0102     TP_ARGS(vcpu),
0103 
0104     TP_STRUCT__entry(
0105         __field(    __u32,  cpu_nr      )
0106         __field(    __u32,  requests    )
0107     ),
0108 
0109     TP_fast_assign(
0110         __entry->cpu_nr     = vcpu->vcpu_id;
0111         __entry->requests   = vcpu->requests;
0112     ),
0113 
0114     TP_printk("vcpu=%x requests=%x",
0115         __entry->cpu_nr, __entry->requests)
0116 );
0117 
0118 #endif /* _TRACE_KVM_H */
0119 
0120 /* This part must be outside protection */
0121 #undef TRACE_INCLUDE_PATH
0122 #undef TRACE_INCLUDE_FILE
0123 
0124 #define TRACE_INCLUDE_PATH .
0125 #define TRACE_INCLUDE_FILE trace
0126 
0127 #include <trace/define_trace.h>