[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Ticket spinlocks and MP guests

On 15/2/08 08:42, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote:

>> You would of course spin for a while and only then sleep.
>> That's a standard
>> mutex implementation trick.
> I'm not sure how to define 'a while', since even for same critical
> section the spin cycles varies at different point. You always risk
> adding more overhead than a normal spin loop. But well, it depends
> on how frequent forementioned case may occur, and the gain
> of pv'ed spinlock may be larger than overhead it causes.

You could certainly end up in the situation that the lock becomes available
just after you decide to sleep, no matter what spin threshold you choose.
It's a balance of probabilities: e.g., if you spin for 1us, what is the
probability distribution of remaining wait time? If the lock-holder is
preempted then you are likely to spin for ages. That, coupled with most
spinlock regions in the kernel being very fast, means that we wouldn't need
to be very smart to filter out the former cases without hurting performance
in the latter. The distribution of waits will be very obviously bimodal.

 -- Keir

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.