Messages in this thread Patch in this message | | | From | Radim Krčmář <> | Subject | [PATCH 6/6] KVM: perform a wake_up in kvm_make_all_cpus_request | Date | Thu, 6 Apr 2017 22:20:56 +0200 |
| |
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.
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> --- virt/kvm/kvm_main.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index a486c6ad27a6..1db503bab3dc 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -186,6 +186,9 @@ bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req) /* Set ->requests bit before we read ->mode. */ smp_mb__after_atomic(); + if (!(req & KVM_REQUEST_NO_WAKEUP)) + kvm_vcpu_wake_up(vcpu); + if (cpus != NULL && cpu != -1 && cpu != me && kvm_arch_vcpu_should_kick(vcpu)) cpumask_set_cpu(cpu, cpus); -- 2.12.0
| |