On Thu, Feb 20, 2014 at 9:54 AM, Waiman Long <waiman.l...@hp.com> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to