Re: [PATCH RFC 0/2] kvm: Improving directed yield in PLE handler

From: Raghavendra K T
Date: Thu Jul 12 2012 - 04:34:37 EST


On 07/12/2012 01:41 PM, Avi Kivity wrote:
On 07/12/2012 08:11 AM, Raghavendra K T wrote:
Ah, I thouht you objected to the CONFIG var. Maybe call it
cpu_relax_intercepted since that's the linuxy name for the instruction.


Ok, just to be on same page. 'll have :
1. cpu_relax_intercepted instead of pause_loop_exited.

2. CONFIG_KVM_HAVE_CPU_RELAX_INTERCEPT which is unconditionally
selected for x86 and s390

3. make request mechanism to clear cpu_relax_intercepted.

('ll do same thing for s390 also but have not seen s390 code using
request mechanism, so not sure if it ok.. otherwise we have to clear
unconditionally for s390 before guest enter and for x86 we have to move
make_request back to vmx/svm).
will post V3 with these changes.

You can leave the s390 changes to the s390 people; just make sure the
generic code is ready.

Yep,
Checked the following logic with make_request and it works fine,

vcpu_spin()
{
ple_exited = true;
.
.
make_request(KVM_REQ_CLEAR_PLE, vcpu);
}

vcpu_enter_guest()
{
if(check_request(KVM_REQ_CLEAR_PLE))
ple_exited = false;
.
.
}

But there is following approach that is working perfectly fine.
vcpu_spin()
{
ple_exited = true;
.
.

ple_exited = false;
}

I hope to go with second approach. let me know if you find any loop
hole.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/