aboutsummaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2021-10-08 19:12:09 -0700
committerPaolo Bonzini <pbonzini@redhat.com>2021-12-08 04:24:52 -0500
commit109a98260b533722d1190dcfa18447dd39fee5ff (patch)
treedc9abf706ab963d37bc436c2401670dd4842de41 /virt
parentKVM: stats: Add stat to detect if vcpu is currently blocking (diff)
downloadlinux-dev-109a98260b533722d1190dcfa18447dd39fee5ff.tar.xz
linux-dev-109a98260b533722d1190dcfa18447dd39fee5ff.zip
KVM: Don't redo ktime_get() when calculating halt-polling stop/deadline
Calculate the halt-polling "stop" time using "start" instead of redoing ktime_get(). In practice, the numbers involved are in the noise (e.g., in the happy case where hardware correctly predicts do_halt_poll and there are no interrupts, "start" is probably only a few cycles old) and either approach is perfectly ok. But it's more precise to count any extra latency toward the halt-polling time. Reviewed-by: David Matlack <dmatlack@google.com> Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20211009021236.4122790-17-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/kvm_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 2630db6e8cb5..97bde32082d0 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3343,7 +3343,7 @@ void kvm_vcpu_halt(struct kvm_vcpu *vcpu)
start = cur = poll_end = ktime_get();
if (do_halt_poll) {
- ktime_t stop = ktime_add_ns(ktime_get(), vcpu->halt_poll_ns);
+ ktime_t stop = ktime_add_ns(start, vcpu->halt_poll_ns);
do {
/*