Re: [PATCH 2/4, v2] x86: enlightenment for ticket spin locks - Xen implementation

Jeremy Fitzhardinge
2010-06-30T14:42:24Z

On 06/30/2010 04:36 PM, Jan Beulich wrote:
> Are we perhaps talking about different things? I'm referring to
>
> static __always_inline void arch_spin_unlock(struct arch_spinlock *lock)
> {
> PVOP_VCALL1(pv_lock_ops.spin_unlock, lock);
> }
>
> which is an indirect call which, as I understand it, gets replaced
> with a direct one at runtime. But it remains to be a call (as opposed
> to being a single inc instructions without CONFIG_PARAVIRT_SPINLOCKS).
>

Sorry, I'm referring to pv ticketlocks, not the current
PARAVIRT_SPINLOCKS code. I agree the current PARAVIRT_SPINLOCKS
implementation is suboptimal and needs to be replaced with something
that's only called on the slow path. I just think the existing
paravirt_ops mechanism can be used to implement it rather than adding
something new.

J