| 
									
										
										
										
											2009-06-18 11:47:27 -03:00
										 |  |  | #if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
 | 
					
						
							|  |  |  | #define _TRACE_KVM_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/tracepoint.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #undef TRACE_SYSTEM
 | 
					
						
							|  |  |  | #define TRACE_SYSTEM kvm
 | 
					
						
							|  |  |  | #define TRACE_INCLUDE_PATH .
 | 
					
						
							|  |  |  | #define TRACE_INCLUDE_FILE trace
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Tracepoint for guest mode entry. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | TRACE_EVENT(kvm_ppc_instr, | 
					
						
							| 
									
										
										
										
											2009-10-30 05:47:25 +00:00
										 |  |  | 	TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate), | 
					
						
							|  |  |  | 	TP_ARGS(inst, _pc, emulate), | 
					
						
							| 
									
										
										
										
											2009-06-18 11:47:27 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	TP_STRUCT__entry( | 
					
						
							|  |  |  | 		__field(	unsigned int,	inst		) | 
					
						
							|  |  |  | 		__field(	unsigned long,	pc		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	emulate		) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_fast_assign( | 
					
						
							|  |  |  | 		__entry->inst		= inst; | 
					
						
							| 
									
										
										
										
											2009-10-30 05:47:25 +00:00
										 |  |  | 		__entry->pc		= _pc; | 
					
						
							| 
									
										
										
										
											2009-06-18 11:47:27 -03:00
										 |  |  | 		__entry->emulate	= emulate; | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_printk("inst %u pc 0x%lx emulate %u\n", | 
					
						
							|  |  |  | 		  __entry->inst, __entry->pc, __entry->emulate) | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TRACE_EVENT(kvm_stlb_inval, | 
					
						
							|  |  |  | 	TP_PROTO(unsigned int stlb_index), | 
					
						
							|  |  |  | 	TP_ARGS(stlb_index), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_STRUCT__entry( | 
					
						
							|  |  |  | 		__field(	unsigned int,	stlb_index	) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_fast_assign( | 
					
						
							|  |  |  | 		__entry->stlb_index	= stlb_index; | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_printk("stlb_index %u", __entry->stlb_index) | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TRACE_EVENT(kvm_stlb_write, | 
					
						
							|  |  |  | 	TP_PROTO(unsigned int victim, unsigned int tid, unsigned int word0, | 
					
						
							|  |  |  | 		 unsigned int word1, unsigned int word2), | 
					
						
							|  |  |  | 	TP_ARGS(victim, tid, word0, word1, word2), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_STRUCT__entry( | 
					
						
							|  |  |  | 		__field(	unsigned int,	victim		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	tid		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	word0		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	word1		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	word2		) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_fast_assign( | 
					
						
							|  |  |  | 		__entry->victim		= victim; | 
					
						
							|  |  |  | 		__entry->tid		= tid; | 
					
						
							|  |  |  | 		__entry->word0		= word0; | 
					
						
							|  |  |  | 		__entry->word1		= word1; | 
					
						
							|  |  |  | 		__entry->word2		= word2; | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_printk("victim %u tid %u w0 %u w1 %u w2 %u", | 
					
						
							|  |  |  | 		__entry->victim, __entry->tid, __entry->word0, | 
					
						
							|  |  |  | 		__entry->word1, __entry->word2) | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TRACE_EVENT(kvm_gtlb_write, | 
					
						
							|  |  |  | 	TP_PROTO(unsigned int gtlb_index, unsigned int tid, unsigned int word0, | 
					
						
							|  |  |  | 		 unsigned int word1, unsigned int word2), | 
					
						
							|  |  |  | 	TP_ARGS(gtlb_index, tid, word0, word1, word2), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_STRUCT__entry( | 
					
						
							|  |  |  | 		__field(	unsigned int,	gtlb_index	) | 
					
						
							|  |  |  | 		__field(	unsigned int,	tid		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	word0		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	word1		) | 
					
						
							|  |  |  | 		__field(	unsigned int,	word2		) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_fast_assign( | 
					
						
							|  |  |  | 		__entry->gtlb_index	= gtlb_index; | 
					
						
							|  |  |  | 		__entry->tid		= tid; | 
					
						
							|  |  |  | 		__entry->word0		= word0; | 
					
						
							|  |  |  | 		__entry->word1		= word1; | 
					
						
							|  |  |  | 		__entry->word2		= word2; | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_printk("gtlb_index %u tid %u w0 %u w1 %u w2 %u", | 
					
						
							|  |  |  | 		__entry->gtlb_index, __entry->tid, __entry->word0, | 
					
						
							|  |  |  | 		__entry->word1, __entry->word2) | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-08 00:44:52 +02:00
										 |  |  | TRACE_EVENT(kvm_check_requests, | 
					
						
							|  |  |  | 	TP_PROTO(struct kvm_vcpu *vcpu), | 
					
						
							|  |  |  | 	TP_ARGS(vcpu), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_STRUCT__entry( | 
					
						
							|  |  |  | 		__field(	__u32,	cpu_nr		) | 
					
						
							|  |  |  | 		__field(	__u32,	requests	) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_fast_assign( | 
					
						
							|  |  |  | 		__entry->cpu_nr		= vcpu->vcpu_id; | 
					
						
							|  |  |  | 		__entry->requests	= vcpu->requests; | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	TP_printk("vcpu=%x requests=%x", | 
					
						
							|  |  |  | 		__entry->cpu_nr, __entry->requests) | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-18 11:47:27 -03:00
										 |  |  | #endif /* _TRACE_KVM_H */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* This part must be outside protection */ | 
					
						
							|  |  |  | #include <trace/define_trace.h>
 |