KVM: perform a wake_up in kvm_make_all_cpus_request
authorRadim Krčmář <rkrcmar@redhat.com>
Wed, 26 Apr 2017 20:32:23 +0000 (22:32 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 27 Apr 2017 12:14:33 +0000 (14:14 +0200)
commit6c6e8360b34d59d2f687a1649e61173742dbc891
tree78ac9d1e1ec51bfeebbdfe086ec58e5a44e9e6ee
parent930f7fd6da77ed9476a538345513460fd304aaf5
KVM: perform a wake_up in kvm_make_all_cpus_request

We want to have kvm_make_all_cpus_request() to be an optmized version of

  kvm_for_each_vcpu(i, vcpu, kvm) {
    kvm_make_request(vcpu, request);
    kvm_vcpu_kick(vcpu);
  }

and kvm_vcpu_kick() wakes up the target vcpu.  We know which requests do
not need the wake up and use it to optimize the loop.

Thanks to that, this patch doesn't change the behavior of current users
(the all don't need the wake up) and only prepares for future where the
wake up is going to be needed.

I think that most requests do not need the wake up, so we would flip the
bit then.

Later on, kvm_make_request() will take care of kicking too, using this
bit to make the decision whether to kick or not.

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/kvm_main.c