KVM: ARM: World-switch implementation
[linux-2.6-block.git] / arch / arm / kvm / trace.h
CommitLineData
749cf76c
CD
1#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
2#define _TRACE_KVM_H
3
4#include <linux/tracepoint.h>
5
6#undef TRACE_SYSTEM
7#define TRACE_SYSTEM kvm
8
9/*
10 * Tracepoints for entry/exit to guest
11 */
12TRACE_EVENT(kvm_entry,
13 TP_PROTO(unsigned long vcpu_pc),
14 TP_ARGS(vcpu_pc),
15
16 TP_STRUCT__entry(
17 __field( unsigned long, vcpu_pc )
18 ),
19
20 TP_fast_assign(
21 __entry->vcpu_pc = vcpu_pc;
22 ),
23
24 TP_printk("PC: 0x%08lx", __entry->vcpu_pc)
25);
26
27TRACE_EVENT(kvm_exit,
28 TP_PROTO(unsigned long vcpu_pc),
29 TP_ARGS(vcpu_pc),
30
31 TP_STRUCT__entry(
32 __field( unsigned long, vcpu_pc )
33 ),
34
35 TP_fast_assign(
36 __entry->vcpu_pc = vcpu_pc;
37 ),
38
39 TP_printk("PC: 0x%08lx", __entry->vcpu_pc)
40);
41
86ce8535
CD
42TRACE_EVENT(kvm_irq_line,
43 TP_PROTO(unsigned int type, int vcpu_idx, int irq_num, int level),
44 TP_ARGS(type, vcpu_idx, irq_num, level),
45
46 TP_STRUCT__entry(
47 __field( unsigned int, type )
48 __field( int, vcpu_idx )
49 __field( int, irq_num )
50 __field( int, level )
51 ),
52
53 TP_fast_assign(
54 __entry->type = type;
55 __entry->vcpu_idx = vcpu_idx;
56 __entry->irq_num = irq_num;
57 __entry->level = level;
58 ),
59
60 TP_printk("Inject %s interrupt (%d), vcpu->idx: %d, num: %d, level: %d",
61 (__entry->type == KVM_ARM_IRQ_TYPE_CPU) ? "CPU" :
62 (__entry->type == KVM_ARM_IRQ_TYPE_PPI) ? "VGIC PPI" :
63 (__entry->type == KVM_ARM_IRQ_TYPE_SPI) ? "VGIC SPI" : "UNKNOWN",
64 __entry->type, __entry->vcpu_idx, __entry->irq_num, __entry->level)
65);
66
d5d8184d
CD
67TRACE_EVENT(kvm_unmap_hva,
68 TP_PROTO(unsigned long hva),
69 TP_ARGS(hva),
749cf76c 70
d5d8184d
CD
71 TP_STRUCT__entry(
72 __field( unsigned long, hva )
73 ),
74
75 TP_fast_assign(
76 __entry->hva = hva;
77 ),
78
79 TP_printk("mmu notifier unmap hva: %#08lx", __entry->hva)
80);
81
82TRACE_EVENT(kvm_unmap_hva_range,
83 TP_PROTO(unsigned long start, unsigned long end),
84 TP_ARGS(start, end),
85
86 TP_STRUCT__entry(
87 __field( unsigned long, start )
88 __field( unsigned long, end )
89 ),
90
91 TP_fast_assign(
92 __entry->start = start;
93 __entry->end = end;
94 ),
95
96 TP_printk("mmu notifier unmap range: %#08lx -- %#08lx",
97 __entry->start, __entry->end)
98);
99
100TRACE_EVENT(kvm_set_spte_hva,
101 TP_PROTO(unsigned long hva),
102 TP_ARGS(hva),
103
104 TP_STRUCT__entry(
105 __field( unsigned long, hva )
106 ),
107
108 TP_fast_assign(
109 __entry->hva = hva;
110 ),
111
112 TP_printk("mmu notifier set pte hva: %#08lx", __entry->hva)
113);
749cf76c
CD
114
115#endif /* _TRACE_KVM_H */
116
117#undef TRACE_INCLUDE_PATH
118#define TRACE_INCLUDE_PATH arch/arm/kvm
119#undef TRACE_INCLUDE_FILE
120#define TRACE_INCLUDE_FILE trace
121
122/* This part must be outside protection */
123#include <trace/define_trace.h>