diff options
Diffstat (limited to 'arch/powerpc/kvm/trace.h')
| -rw-r--r-- | arch/powerpc/kvm/trace.h | 239 | 
1 files changed, 9 insertions, 230 deletions
diff --git a/arch/powerpc/kvm/trace.h b/arch/powerpc/kvm/trace.h index 3aca1b042b8..2e0e67ef354 100644 --- a/arch/powerpc/kvm/trace.h +++ b/arch/powerpc/kvm/trace.h @@ -98,245 +98,24 @@ TRACE_EVENT(kvm_gtlb_write,  		__entry->word1, __entry->word2)  ); - -/************************************************************************* - *                         Book3S trace points                           * - *************************************************************************/ - -#ifdef CONFIG_PPC_BOOK3S - -TRACE_EVENT(kvm_book3s_exit, -	TP_PROTO(unsigned int exit_nr, struct kvm_vcpu *vcpu), -	TP_ARGS(exit_nr, vcpu), +TRACE_EVENT(kvm_check_requests, +	TP_PROTO(struct kvm_vcpu *vcpu), +	TP_ARGS(vcpu),  	TP_STRUCT__entry( -		__field(	unsigned int,	exit_nr		) -		__field(	unsigned long,	pc		) -		__field(	unsigned long,	msr		) -		__field(	unsigned long,	dar		) -		__field(	unsigned long,	srr1		) +		__field(	__u32,	cpu_nr		) +		__field(	__u32,	requests	)  	),  	TP_fast_assign( -		__entry->exit_nr	= exit_nr; -		__entry->pc		= kvmppc_get_pc(vcpu); -		__entry->dar		= kvmppc_get_fault_dar(vcpu); -		__entry->msr		= vcpu->arch.shared->msr; -		__entry->srr1		= to_svcpu(vcpu)->shadow_srr1; +		__entry->cpu_nr		= vcpu->vcpu_id; +		__entry->requests	= vcpu->requests;  	), -	TP_printk("exit=0x%x | pc=0x%lx | msr=0x%lx | dar=0x%lx | srr1=0x%lx", -		  __entry->exit_nr, __entry->pc, __entry->msr, __entry->dar, -		  __entry->srr1) +	TP_printk("vcpu=%x requests=%x", +		__entry->cpu_nr, __entry->requests)  ); -TRACE_EVENT(kvm_book3s_reenter, -	TP_PROTO(int r, struct kvm_vcpu *vcpu), -	TP_ARGS(r, vcpu), - -	TP_STRUCT__entry( -		__field(	unsigned int,	r		) -		__field(	unsigned long,	pc		) -	), - -	TP_fast_assign( -		__entry->r		= r; -		__entry->pc		= kvmppc_get_pc(vcpu); -	), - -	TP_printk("reentry r=%d | pc=0x%lx", __entry->r, __entry->pc) -); - -#ifdef CONFIG_PPC_BOOK3S_64 - -TRACE_EVENT(kvm_book3s_64_mmu_map, -	TP_PROTO(int rflags, ulong hpteg, ulong va, pfn_t hpaddr, -		 struct kvmppc_pte *orig_pte), -	TP_ARGS(rflags, hpteg, va, hpaddr, orig_pte), - -	TP_STRUCT__entry( -		__field(	unsigned char,		flag_w		) -		__field(	unsigned char,		flag_x		) -		__field(	unsigned long,		eaddr		) -		__field(	unsigned long,		hpteg		) -		__field(	unsigned long,		va		) -		__field(	unsigned long long,	vpage		) -		__field(	unsigned long,		hpaddr		) -	), - -	TP_fast_assign( -		__entry->flag_w	= ((rflags & HPTE_R_PP) == 3) ? '-' : 'w'; -		__entry->flag_x	= (rflags & HPTE_R_N) ? '-' : 'x'; -		__entry->eaddr	= orig_pte->eaddr; -		__entry->hpteg	= hpteg; -		__entry->va	= va; -		__entry->vpage	= orig_pte->vpage; -		__entry->hpaddr	= hpaddr; -	), - -	TP_printk("KVM: %c%c Map 0x%lx: [%lx] 0x%lx (0x%llx) -> %lx", -		  __entry->flag_w, __entry->flag_x, __entry->eaddr, -		  __entry->hpteg, __entry->va, __entry->vpage, __entry->hpaddr) -); - -#endif /* CONFIG_PPC_BOOK3S_64 */ - -TRACE_EVENT(kvm_book3s_mmu_map, -	TP_PROTO(struct hpte_cache *pte), -	TP_ARGS(pte), - -	TP_STRUCT__entry( -		__field(	u64,		host_va		) -		__field(	u64,		pfn		) -		__field(	ulong,		eaddr		) -		__field(	u64,		vpage		) -		__field(	ulong,		raddr		) -		__field(	int,		flags		) -	), - -	TP_fast_assign( -		__entry->host_va	= pte->host_va; -		__entry->pfn		= pte->pfn; -		__entry->eaddr		= pte->pte.eaddr; -		__entry->vpage		= pte->pte.vpage; -		__entry->raddr		= pte->pte.raddr; -		__entry->flags		= (pte->pte.may_read ? 0x4 : 0) | -					  (pte->pte.may_write ? 0x2 : 0) | -					  (pte->pte.may_execute ? 0x1 : 0); -	), - -	TP_printk("Map: hva=%llx pfn=%llx ea=%lx vp=%llx ra=%lx [%x]", -		  __entry->host_va, __entry->pfn, __entry->eaddr, -		  __entry->vpage, __entry->raddr, __entry->flags) -); - -TRACE_EVENT(kvm_book3s_mmu_invalidate, -	TP_PROTO(struct hpte_cache *pte), -	TP_ARGS(pte), - -	TP_STRUCT__entry( -		__field(	u64,		host_va		) -		__field(	u64,		pfn		) -		__field(	ulong,		eaddr		) -		__field(	u64,		vpage		) -		__field(	ulong,		raddr		) -		__field(	int,		flags		) -	), - -	TP_fast_assign( -		__entry->host_va	= pte->host_va; -		__entry->pfn		= pte->pfn; -		__entry->eaddr		= pte->pte.eaddr; -		__entry->vpage		= pte->pte.vpage; -		__entry->raddr		= pte->pte.raddr; -		__entry->flags		= (pte->pte.may_read ? 0x4 : 0) | -					  (pte->pte.may_write ? 0x2 : 0) | -					  (pte->pte.may_execute ? 0x1 : 0); -	), - -	TP_printk("Flush: hva=%llx pfn=%llx ea=%lx vp=%llx ra=%lx [%x]", -		  __entry->host_va, __entry->pfn, __entry->eaddr, -		  __entry->vpage, __entry->raddr, __entry->flags) -); - -TRACE_EVENT(kvm_book3s_mmu_flush, -	TP_PROTO(const char *type, struct kvm_vcpu *vcpu, unsigned long long p1, -		 unsigned long long p2), -	TP_ARGS(type, vcpu, p1, p2), - -	TP_STRUCT__entry( -		__field(	int,			count		) -		__field(	unsigned long long,	p1		) -		__field(	unsigned long long,	p2		) -		__field(	const char *,		type		) -	), - -	TP_fast_assign( -		__entry->count		= vcpu->arch.hpte_cache_count; -		__entry->p1		= p1; -		__entry->p2		= p2; -		__entry->type		= type; -	), - -	TP_printk("Flush %d %sPTEs: %llx - %llx", -		  __entry->count, __entry->type, __entry->p1, __entry->p2) -); - -TRACE_EVENT(kvm_book3s_slb_found, -	TP_PROTO(unsigned long long gvsid, unsigned long long hvsid), -	TP_ARGS(gvsid, hvsid), - -	TP_STRUCT__entry( -		__field(	unsigned long long,	gvsid		) -		__field(	unsigned long long,	hvsid		) -	), - -	TP_fast_assign( -		__entry->gvsid		= gvsid; -		__entry->hvsid		= hvsid; -	), - -	TP_printk("%llx -> %llx", __entry->gvsid, __entry->hvsid) -); - -TRACE_EVENT(kvm_book3s_slb_fail, -	TP_PROTO(u16 sid_map_mask, unsigned long long gvsid), -	TP_ARGS(sid_map_mask, gvsid), - -	TP_STRUCT__entry( -		__field(	unsigned short,		sid_map_mask	) -		__field(	unsigned long long,	gvsid		) -	), - -	TP_fast_assign( -		__entry->sid_map_mask	= sid_map_mask; -		__entry->gvsid		= gvsid; -	), - -	TP_printk("%x/%x: %llx", __entry->sid_map_mask, -		  SID_MAP_MASK - __entry->sid_map_mask, __entry->gvsid) -); - -TRACE_EVENT(kvm_book3s_slb_map, -	TP_PROTO(u16 sid_map_mask, unsigned long long gvsid, -		 unsigned long long hvsid), -	TP_ARGS(sid_map_mask, gvsid, hvsid), - -	TP_STRUCT__entry( -		__field(	unsigned short,		sid_map_mask	) -		__field(	unsigned long long,	guest_vsid	) -		__field(	unsigned long long,	host_vsid	) -	), - -	TP_fast_assign( -		__entry->sid_map_mask	= sid_map_mask; -		__entry->guest_vsid	= gvsid; -		__entry->host_vsid	= hvsid; -	), - -	TP_printk("%x: %llx -> %llx", __entry->sid_map_mask, -		  __entry->guest_vsid, __entry->host_vsid) -); - -TRACE_EVENT(kvm_book3s_slbmte, -	TP_PROTO(u64 slb_vsid, u64 slb_esid), -	TP_ARGS(slb_vsid, slb_esid), - -	TP_STRUCT__entry( -		__field(	u64,	slb_vsid	) -		__field(	u64,	slb_esid	) -	), - -	TP_fast_assign( -		__entry->slb_vsid	= slb_vsid; -		__entry->slb_esid	= slb_esid; -	), - -	TP_printk("%llx, %llx", __entry->slb_vsid, __entry->slb_esid) -); - -#endif /* CONFIG_PPC_BOOK3S */ -  #endif /* _TRACE_KVM_H */  /* This part must be outside protection */  | 
