Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 089504c0 authored by Xiao Guangrong's avatar Xiao Guangrong Committed by Gleb Natapov
Browse files

KVM: MMU: add tracepoint for check_mmio_spte



It is useful for debug mmio spte invalidation

Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Reviewed-by: default avatarGleb Natapov <gleb@redhat.com>
Reviewed-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent f8f55942
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -283,8 +283,13 @@ static bool set_mmio_spte(struct kvm *kvm, u64 *sptep, gfn_t gfn,

static bool check_mmio_spte(struct kvm *kvm, u64 spte)
{
	return likely(get_mmio_spte_generation(spte) ==
			kvm_current_mmio_generation(kvm));
	unsigned int kvm_gen, spte_gen;

	kvm_gen = kvm_current_mmio_generation(kvm);
	spte_gen = get_mmio_spte_generation(spte);

	trace_check_mmio_spte(spte, kvm_gen, spte_gen);
	return likely(kvm_gen == spte_gen);
}

static inline u64 rsvd_bits(int s, int e)
+24 −0
Original line number Diff line number Diff line
@@ -298,6 +298,30 @@ TRACE_EVENT(
		  __entry->mmu_valid_gen, __entry->mmu_used_pages
	)
);


TRACE_EVENT(
	check_mmio_spte,
	TP_PROTO(u64 spte, unsigned int kvm_gen, unsigned int spte_gen),
	TP_ARGS(spte, kvm_gen, spte_gen),

	TP_STRUCT__entry(
		__field(unsigned int, kvm_gen)
		__field(unsigned int, spte_gen)
		__field(u64, spte)
	),

	TP_fast_assign(
		__entry->kvm_gen = kvm_gen;
		__entry->spte_gen = spte_gen;
		__entry->spte = spte;
	),

	TP_printk("spte %llx kvm_gen %x spte-gen %x valid %d", __entry->spte,
		  __entry->kvm_gen, __entry->spte_gen,
		  __entry->kvm_gen == __entry->spte_gen
	)
);
#endif /* _TRACE_KVMMMU_H */

#undef TRACE_INCLUDE_PATH