aboutsummaryrefslogtreecommitdiffstats
path: root/virt/kvm
diff options
context:
space:
mode:
authorJing Zhang <jingzhangos@google.com>2021-08-02 16:56:32 +0000
committerPaolo Bonzini <pbonzini@redhat.com>2021-08-20 16:06:33 -0400
commit87bcc5fa092f82a9890f9e73e4f4c7016ef64049 (patch)
treec9c80d92eca31439b443fb9d8e5b04b868880435 /virt/kvm
parentKVM: selftests: Add checks for histogram stats bucket_size field (diff)
downloadlinux-dev-87bcc5fa092f82a9890f9e73e4f4c7016ef64049.tar.xz
linux-dev-87bcc5fa092f82a9890f9e73e4f4c7016ef64049.zip
KVM: stats: Add halt_wait_ns stats for all architectures
Add simple stats halt_wait_ns to record the time a VCPU has spent on waiting for all architectures (not just powerpc). Signed-off-by: Jing Zhang <jingzhangos@google.com> Message-Id: <20210802165633.1866976-5-jingzhangos@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt/kvm')
-rw-r--r--virt/kvm/kvm_main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 8563d9b725af..e6fc579bb454 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3241,6 +3241,10 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
}
finish_rcuwait(&vcpu->wait);
cur = ktime_get();
+ if (waited) {
+ vcpu->stat.generic.halt_wait_ns +=
+ ktime_to_ns(cur) - ktime_to_ns(poll_end);
+ }
out:
kvm_arch_vcpu_unblocking(vcpu);
block_ns = ktime_to_ns(cur) - ktime_to_ns(start);