KVM: stats: Support binary stats retrieval for a VCPU
[sfrench/cifs-2.6.git] / arch / powerpc / kvm / booke.c
index a49ea4dcf9638872898f6ad5edec5dd639484b0a..6e8de33bc13813f794521d96b21701a0fb97d42d 100644 (file)
@@ -53,6 +53,44 @@ const struct kvm_stats_header kvm_vm_stats_header = {
                       sizeof(kvm_vm_stats_desc),
 };
 
+const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = {
+       KVM_GENERIC_VCPU_STATS(),
+       STATS_DESC_COUNTER(VCPU, sum_exits),
+       STATS_DESC_COUNTER(VCPU, mmio_exits),
+       STATS_DESC_COUNTER(VCPU, signal_exits),
+       STATS_DESC_COUNTER(VCPU, light_exits),
+       STATS_DESC_COUNTER(VCPU, itlb_real_miss_exits),
+       STATS_DESC_COUNTER(VCPU, itlb_virt_miss_exits),
+       STATS_DESC_COUNTER(VCPU, dtlb_real_miss_exits),
+       STATS_DESC_COUNTER(VCPU, dtlb_virt_miss_exits),
+       STATS_DESC_COUNTER(VCPU, syscall_exits),
+       STATS_DESC_COUNTER(VCPU, isi_exits),
+       STATS_DESC_COUNTER(VCPU, dsi_exits),
+       STATS_DESC_COUNTER(VCPU, emulated_inst_exits),
+       STATS_DESC_COUNTER(VCPU, dec_exits),
+       STATS_DESC_COUNTER(VCPU, ext_intr_exits),
+       STATS_DESC_TIME_NSEC(VCPU, halt_wait_ns),
+       STATS_DESC_COUNTER(VCPU, halt_successful_wait),
+       STATS_DESC_COUNTER(VCPU, dbell_exits),
+       STATS_DESC_COUNTER(VCPU, gdbell_exits),
+       STATS_DESC_COUNTER(VCPU, ld),
+       STATS_DESC_COUNTER(VCPU, st),
+       STATS_DESC_COUNTER(VCPU, pthru_all),
+       STATS_DESC_COUNTER(VCPU, pthru_host),
+       STATS_DESC_COUNTER(VCPU, pthru_bad_aff)
+};
+static_assert(ARRAY_SIZE(kvm_vcpu_stats_desc) ==
+               sizeof(struct kvm_vcpu_stat) / sizeof(u64));
+
+const struct kvm_stats_header kvm_vcpu_stats_header = {
+       .name_size = KVM_STATS_NAME_SIZE,
+       .num_desc = ARRAY_SIZE(kvm_vcpu_stats_desc),
+       .id_offset = sizeof(struct kvm_stats_header),
+       .desc_offset = sizeof(struct kvm_stats_header) + KVM_STATS_NAME_SIZE,
+       .data_offset = sizeof(struct kvm_stats_header) + KVM_STATS_NAME_SIZE +
+                      sizeof(kvm_vcpu_stats_desc),
+};
+
 struct kvm_stats_debugfs_item debugfs_entries[] = {
        VCPU_STAT("mmio", mmio_exits),
        VCPU_STAT("sig", signal_exits),