blob: 77022af484922da4620d03678faf83878f5d3d14 [file] [log] [blame]
Marcelo Tosatti229456f2009-06-17 09:22:14 -03001#if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ)
2#define _TRACE_KVM_MAIN_H
3
4#include <linux/tracepoint.h>
5
6#undef TRACE_SYSTEM
7#define TRACE_SYSTEM kvm
8#define TRACE_INCLUDE_FILE kvm
9
10#if defined(__KVM_HAVE_IOAPIC)
11TRACE_EVENT(kvm_set_irq,
Avi Kivityae8c1c42009-07-01 12:09:41 +030012 TP_PROTO(unsigned int gsi, int level, int irq_source_id),
13 TP_ARGS(gsi, level, irq_source_id),
Marcelo Tosatti229456f2009-06-17 09:22:14 -030014
15 TP_STRUCT__entry(
16 __field( unsigned int, gsi )
Avi Kivityae8c1c42009-07-01 12:09:41 +030017 __field( int, level )
18 __field( int, irq_source_id )
Marcelo Tosatti229456f2009-06-17 09:22:14 -030019 ),
20
21 TP_fast_assign(
22 __entry->gsi = gsi;
Avi Kivityae8c1c42009-07-01 12:09:41 +030023 __entry->level = level;
24 __entry->irq_source_id = irq_source_id;
Marcelo Tosatti229456f2009-06-17 09:22:14 -030025 ),
26
Avi Kivityae8c1c42009-07-01 12:09:41 +030027 TP_printk("gsi %u level %d source %d",
28 __entry->gsi, __entry->level, __entry->irq_source_id)
Marcelo Tosatti229456f2009-06-17 09:22:14 -030029);
30
31
32#define kvm_irqchips \
33 {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \
34 {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \
35 {KVM_IRQCHIP_IOAPIC, "IOAPIC"}
36
37TRACE_EVENT(kvm_ack_irq,
38 TP_PROTO(unsigned int irqchip, unsigned int pin),
39 TP_ARGS(irqchip, pin),
40
41 TP_STRUCT__entry(
42 __field( unsigned int, irqchip )
43 __field( unsigned int, pin )
44 ),
45
46 TP_fast_assign(
47 __entry->irqchip = irqchip;
48 __entry->pin = pin;
49 ),
50
51 TP_printk("irqchip %s pin %u",
52 __print_symbolic(__entry->irqchip, kvm_irqchips),
53 __entry->pin)
54);
55
56
57
58#endif /* defined(__KVM_HAVE_IOAPIC) */
Avi Kivityaec51dc2009-07-01 16:01:02 +030059
60#define KVM_TRACE_MMIO_READ_UNSATISFIED 0
61#define KVM_TRACE_MMIO_READ 1
62#define KVM_TRACE_MMIO_WRITE 2
63
64#define kvm_trace_symbol_mmio \
65 { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \
66 { KVM_TRACE_MMIO_READ, "read" }, \
67 { KVM_TRACE_MMIO_WRITE, "write" }
68
69TRACE_EVENT(kvm_mmio,
70 TP_PROTO(int type, int len, u64 gpa, u64 val),
71 TP_ARGS(type, len, gpa, val),
72
73 TP_STRUCT__entry(
74 __field( u32, type )
75 __field( u32, len )
76 __field( u64, gpa )
77 __field( u64, val )
78 ),
79
80 TP_fast_assign(
81 __entry->type = type;
82 __entry->len = len;
83 __entry->gpa = gpa;
84 __entry->val = val;
85 ),
86
87 TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx",
88 __print_symbolic(__entry->type, kvm_trace_symbol_mmio),
89 __entry->len, __entry->gpa, __entry->val)
90);
91
Marcelo Tosatti229456f2009-06-17 09:22:14 -030092#endif /* _TRACE_KVM_MAIN_H */
93
94/* This part must be outside protection */
95#include <trace/define_trace.h>