|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC V4 0/5] kvm : Paravirt-spinlock support for KVM guests
On 01/16/2012 07:55 PM, Avi Kivity wrote:
> On 01/16/2012 08:40 AM, Jeremy Fitzhardinge wrote:
>>> That means we're spinning for n cycles, then notify the spinlock holder
>>> that we'd like to get kicked and go sleeping. While I'm pretty sure that it
>>> improves the situation, it doesn't solve all of the issues we have.
>>>
>>> Imagine we have an idle host. All vcpus can freely run and everyone can
>>> fetch the lock as fast as on real machines. We don't need to / want to go
>>> to sleep here. Locks that take too long are bugs that need to be solved on
>>> real hw just as well, so all we do is possibly incur overhead.
>> I'm not quite sure what your concern is. The lock is under contention, so
>> there's nothing to do except spin; all this patch adds is a variable
>> decrement/test to the spin loop, but that's not going to waste any more CPU
>> than the non-counting case. And once it falls into the blocking path, its a
>> win because the VCPU isn't burning CPU any more.
> The wakeup path is slower though. The previous lock holder has to
> hypercall, and the new lock holder has to be scheduled, and transition
> from halted state to running (a vmentry). So it's only a clear win if
> we can do something with the cpu other than go into the idle loop.
Not burning power is a win too.
Actually what you want is something like "if you preempt a VCPU while
its spinning in a lock, then push it into the slowpath and don't
reschedule it without a kick". But I think that interface would have a
lot of fiddly corners.
J
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |