This source file includes following definitions.
- kvmppc_set_exit_type
- kvmppc_init_timing_stats
- kvmppc_update_timing_stats
- kvmppc_create_vcpu_debugfs
- kvmppc_remove_vcpu_debugfs
- kvmppc_set_exit_type
- kvmppc_account_exit_stat
- kvmppc_account_exit
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 #ifndef __POWERPC_KVM_EXITTIMING_H__
  10 #define __POWERPC_KVM_EXITTIMING_H__
  11 
  12 #include <linux/kvm_host.h>
  13 #include <asm/kvm_host.h>
  14 
  15 #ifdef CONFIG_KVM_EXIT_TIMING
  16 void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu);
  17 void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu);
  18 void kvmppc_create_vcpu_debugfs(struct kvm_vcpu *vcpu, unsigned int id);
  19 void kvmppc_remove_vcpu_debugfs(struct kvm_vcpu *vcpu);
  20 
  21 static inline void kvmppc_set_exit_type(struct kvm_vcpu *vcpu, int type)
  22 {
  23         vcpu->arch.last_exit_type = type;
  24 }
  25 
  26 #else
  27 
  28 static inline void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu) {}
  29 static inline void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu) {}
  30 static inline void kvmppc_create_vcpu_debugfs(struct kvm_vcpu *vcpu,
  31                                                 unsigned int id) {}
  32 static inline void kvmppc_remove_vcpu_debugfs(struct kvm_vcpu *vcpu) {}
  33 static inline void kvmppc_set_exit_type(struct kvm_vcpu *vcpu, int type) {}
  34 #endif 
  35 
  36 
  37 static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type)
  38 {
  39         
  40 
  41         
  42 
  43 
  44 
  45         switch (type) {
  46         case EXT_INTR_EXITS:
  47                 vcpu->stat.ext_intr_exits++;
  48                 break;
  49         case DEC_EXITS:
  50                 vcpu->stat.dec_exits++;
  51                 break;
  52         case EMULATED_INST_EXITS:
  53                 vcpu->stat.emulated_inst_exits++;
  54                 break;
  55         case DSI_EXITS:
  56                 vcpu->stat.dsi_exits++;
  57                 break;
  58         case ISI_EXITS:
  59                 vcpu->stat.isi_exits++;
  60                 break;
  61         case SYSCALL_EXITS:
  62                 vcpu->stat.syscall_exits++;
  63                 break;
  64         case DTLB_REAL_MISS_EXITS:
  65                 vcpu->stat.dtlb_real_miss_exits++;
  66                 break;
  67         case DTLB_VIRT_MISS_EXITS:
  68                 vcpu->stat.dtlb_virt_miss_exits++;
  69                 break;
  70         case MMIO_EXITS:
  71                 vcpu->stat.mmio_exits++;
  72                 break;
  73         case ITLB_REAL_MISS_EXITS:
  74                 vcpu->stat.itlb_real_miss_exits++;
  75                 break;
  76         case ITLB_VIRT_MISS_EXITS:
  77                 vcpu->stat.itlb_virt_miss_exits++;
  78                 break;
  79         case SIGNAL_EXITS:
  80                 vcpu->stat.signal_exits++;
  81                 break;
  82         case DBELL_EXITS:
  83                 vcpu->stat.dbell_exits++;
  84                 break;
  85         case GDBELL_EXITS:
  86                 vcpu->stat.gdbell_exits++;
  87                 break;
  88         }
  89 }
  90 
  91 
  92 static inline void kvmppc_account_exit(struct kvm_vcpu *vcpu, int type)
  93 {
  94         kvmppc_set_exit_type(vcpu, type);
  95         kvmppc_account_exit_stat(vcpu, type);
  96 }
  97 
  98 #endif