aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kvm/book3s_mmu_hpte.c18
-rw-r--r--arch/powerpc/kvm/trace.h23
2 files changed, 26 insertions, 15 deletions
diff --git a/arch/powerpc/kvm/book3s_mmu_hpte.c b/arch/powerpc/kvm/book3s_mmu_hpte.c
index 3397152a2b26..bd6a7676d0c8 100644
--- a/arch/powerpc/kvm/book3s_mmu_hpte.c
+++ b/arch/powerpc/kvm/book3s_mmu_hpte.c
@@ -31,14 +31,6 @@
31 31
32#define PTE_SIZE 12 32#define PTE_SIZE 12
33 33
34/* #define DEBUG_MMU */
35
36#ifdef DEBUG_MMU
37#define dprintk_mmu(a, ...) printk(KERN_INFO a, __VA_ARGS__)
38#else
39#define dprintk_mmu(a, ...) do { } while(0)
40#endif
41
42static struct kmem_cache *hpte_cache; 34static struct kmem_cache *hpte_cache;
43 35
44static inline u64 kvmppc_mmu_hash_pte(u64 eaddr) 36static inline u64 kvmppc_mmu_hash_pte(u64 eaddr)
@@ -186,9 +178,7 @@ static void kvmppc_mmu_pte_flush_long(struct kvm_vcpu *vcpu, ulong guest_ea)
186 178
187void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, ulong guest_ea, ulong ea_mask) 179void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, ulong guest_ea, ulong ea_mask)
188{ 180{
189 dprintk_mmu("KVM: Flushing %d Shadow PTEs: 0x%lx & 0x%lx\n", 181 trace_kvm_book3s_mmu_flush("", vcpu, guest_ea, ea_mask);
190 vcpu->arch.hpte_cache_count, guest_ea, ea_mask);
191
192 guest_ea &= ea_mask; 182 guest_ea &= ea_mask;
193 183
194 switch (ea_mask) { 184 switch (ea_mask) {
@@ -251,8 +241,7 @@ static void kvmppc_mmu_pte_vflush_long(struct kvm_vcpu *vcpu, u64 guest_vp)
251 241
252void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 guest_vp, u64 vp_mask) 242void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 guest_vp, u64 vp_mask)
253{ 243{
254 dprintk_mmu("KVM: Flushing %d Shadow vPTEs: 0x%llx & 0x%llx\n", 244 trace_kvm_book3s_mmu_flush("v", vcpu, guest_vp, vp_mask);
255 vcpu->arch.hpte_cache_count, guest_vp, vp_mask);
256 guest_vp &= vp_mask; 245 guest_vp &= vp_mask;
257 246
258 switch(vp_mask) { 247 switch(vp_mask) {
@@ -274,8 +263,7 @@ void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, ulong pa_start, ulong pa_end)
274 struct hpte_cache *pte; 263 struct hpte_cache *pte;
275 int i; 264 int i;
276 265
277 dprintk_mmu("KVM: Flushing %d Shadow pPTEs: 0x%lx - 0x%lx\n", 266 trace_kvm_book3s_mmu_flush("p", vcpu, pa_start, pa_end);
278 vcpu->arch.hpte_cache_count, pa_start, pa_end);
279 267
280 rcu_read_lock(); 268 rcu_read_lock();
281 269
diff --git a/arch/powerpc/kvm/trace.h b/arch/powerpc/kvm/trace.h
index 06ad93e40648..23f757a69163 100644
--- a/arch/powerpc/kvm/trace.h
+++ b/arch/powerpc/kvm/trace.h
@@ -239,6 +239,29 @@ TRACE_EVENT(kvm_book3s_mmu_invalidate,
239 __entry->vpage, __entry->raddr, __entry->flags) 239 __entry->vpage, __entry->raddr, __entry->flags)
240); 240);
241 241
242TRACE_EVENT(kvm_book3s_mmu_flush,
243 TP_PROTO(const char *type, struct kvm_vcpu *vcpu, unsigned long long p1,
244 unsigned long long p2),
245 TP_ARGS(type, vcpu, p1, p2),
246
247 TP_STRUCT__entry(
248 __field( int, count )
249 __field( unsigned long long, p1 )
250 __field( unsigned long long, p2 )
251 __field( const char *, type )
252 ),
253
254 TP_fast_assign(
255 __entry->count = vcpu->arch.hpte_cache_count;
256 __entry->p1 = p1;
257 __entry->p2 = p2;
258 __entry->type = type;
259 ),
260
261 TP_printk("Flush %d %sPTEs: %llx - %llx",
262 __entry->count, __entry->type, __entry->p1, __entry->p2)
263);
264
242#endif /* CONFIG_PPC_BOOK3S */ 265#endif /* CONFIG_PPC_BOOK3S */
243 266
244#endif /* _TRACE_KVM_H */ 267#endif /* _TRACE_KVM_H */