Re: [PATCH v4 0/3] qspinlock: Introducing a 4-byte queue spinlock

From: Waiman Long
Date: Thu Feb 20 2014 - 14:21:22 EST


On 02/20/2014 01:42 PM, Linus Torvalds wrote:
On Thu, Feb 20, 2014 at 9:54 AM, Waiman Long<waiman.long@xxxxxx> wrote:
I think we could implement 2 versions of _raw_spin_lock.
Yup. Or rather, I'd suggest implement just one version of
arch_spin_lock(), but at the top of it you do something like

#if CONFIG_PARAVIRT_SPINLOCK
if (static_key_false(&unfair_spinlocks)) {
.. do paravirt unfair lock version ..
}
#endif

which should basically generate almost-perfect code: it's one extra
no-op for the native case if CONFIG_PARAVIRT_SPINLOCK is on, which
turns into a branch for the unfair version for paravirtualization.

Or something like that.

Linus

Yes, this is actually what I meant. The only difference is that I am thinking about using a different config variable as PARAVIRT_SPINLOCKS actually mean something else.

-Longman
--
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/