aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/kvm/kvm.h1
-rw-r--r--drivers/kvm/kvm_main.c3
-rw-r--r--drivers/kvm/x86.c1
3 files changed, 5 insertions, 0 deletions
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
index b65f5dee4b1b..048849d97b35 100644
--- a/drivers/kvm/kvm.h
+++ b/drivers/kvm/kvm.h
@@ -300,6 +300,7 @@ struct kvm_vm_stat {
300 u32 mmu_pde_zapped; 300 u32 mmu_pde_zapped;
301 u32 mmu_flooded; 301 u32 mmu_flooded;
302 u32 mmu_recycled; 302 u32 mmu_recycled;
303 u32 remote_tlb_flush;
303}; 304};
304 305
305struct kvm { 306struct kvm {
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 7939b5c9a4b4..aec6b67cfebb 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -115,6 +115,9 @@ void kvm_flush_remote_tlbs(struct kvm *kvm)
115 if (cpu != -1 && cpu != raw_smp_processor_id()) 115 if (cpu != -1 && cpu != raw_smp_processor_id())
116 cpu_set(cpu, cpus); 116 cpu_set(cpu, cpus);
117 } 117 }
118 if (cpus_empty(cpus))
119 return;
120 ++kvm->stat.remote_tlb_flush;
118 smp_call_function_mask(cpus, ack_flush, NULL, 1); 121 smp_call_function_mask(cpus, ack_flush, NULL, 1);
119} 122}
120 123
diff --git a/drivers/kvm/x86.c b/drivers/kvm/x86.c
index b482b6a8a828..ac09f381f47f 100644
--- a/drivers/kvm/x86.c
+++ b/drivers/kvm/x86.c
@@ -73,6 +73,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
73 { "mmu_pde_zapped", VM_STAT(mmu_pde_zapped) }, 73 { "mmu_pde_zapped", VM_STAT(mmu_pde_zapped) },
74 { "mmu_flooded", VM_STAT(mmu_flooded) }, 74 { "mmu_flooded", VM_STAT(mmu_flooded) },
75 { "mmu_recycled", VM_STAT(mmu_recycled) }, 75 { "mmu_recycled", VM_STAT(mmu_recycled) },
76 { "remote_tlb_flush", VM_STAT(remote_tlb_flush) },
76 { NULL } 77 { NULL }
77}; 78};
78 79