Re: [PATCH 1/5] KVM: simplify branch check in host poll code

From: Zhenzhong Duan
Date: Sun Nov 03 2019 - 22:50:23 EST



On 2019/11/2 5:03, Marcelo Tosatti wrote:
On Sat, Oct 26, 2019 at 11:23:55AM +0800, Zhenzhong Duan wrote:
Remove redundant check.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx>
---
virt/kvm/kvm_main.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 67ef3f2..2ca2979 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -2366,13 +2366,12 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
} else if (halt_poll_ns) {
if (block_ns <= vcpu->halt_poll_ns)
;
- /* we had a long block, shrink polling */
- else if (vcpu->halt_poll_ns && block_ns > halt_poll_ns)
- shrink_halt_poll_ns(vcpu);
/* we had a short halt and our poll time is too small */
- else if (vcpu->halt_poll_ns < halt_poll_ns &&
This is not a redundant check: it avoids from calling
into grow_halt_poll_ns, which will do:

1) Multiplication
2) Cap that back to halt_poll_ns
3) Invoke the trace_kvm_halt_poll_ns_grow tracepoint
(when in fact vcpu->halt_poll_ns did not grow).

In this branch, vcpu->halt_poll_ns < block_ns is true, and if block_ns < halt_poll_ns,

then vcpu->halt_poll_ns < halt_poll_ns is always true, isn't it?


I realized I ignored the situation that halt_poll_ns and halt_poll_ns_grow could be

updated at runtime, so pls ignore this patch, I'll fix it by following the guest haltpoll code.

Thanks

Zhenzhong