Messages in this thread Patch in this message | | | From | Raghavendra K T <> | Date | Mon, 04 Mar 2013 23:32:27 +0530 | Subject | [PATCH RFC 2/2] kvm: Iterate over only vcpus that are preempted |
| |
From: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
This helps in filtering out the eligible candidates further and thus potentially helps in quickly allowing preempted lockholders to run. Note that if a vcpu was spinning during preemption we filter them by checking whether they are preempted due to pause loop exit.
Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com> --- virt/kvm/kvm_main.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 83a804c..60114e1 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -1790,6 +1790,8 @@ void kvm_vcpu_on_spin(struct kvm_vcpu *me) continue; } else if (pass && i > last_boosted_vcpu) break; + if (!ACCESS_ONCE(vcpu->preempted)) + continue; if (vcpu == me) continue; if (waitqueue_active(&vcpu->wq))
| |