Re: [PATCH 1/1] linux headers: header file(s) changes to enable spinlockuse jumplabel

From: Raghavendra K T
Date: Wed Feb 22 2012 - 05:48:53 EST


On 02/20/2012 03:03 PM, Gleb Natapov wrote:
On Mon, Feb 20, 2012 at 11:44:25AM +0530, Raghavendra K T wrote:
On 02/20/2012 10:46 AM, Jeremy Fitzhardinge wrote:
[...]
But does pvlock have to use jump
label? I looked at the code and it is used like paravirt patching. Meaning
it is patched only once on a boot up when XEN is detected. May be use
paravirt patching instead of jump label? What if jump label will want
to use spinlock for some reason in the future (it uses mutex currently)?

The point of the pv ticketlocks is to avoid any pvop calls on the
lock/unlock fastpath, relegating them to only the slow path.
Unfortunately, the pv unlock case can't be identical with the non-pv
unlock, and jump_labels are lighter weight and more efficient than pvops.

It doesn't matter if jump_labels start using spinlocks; all we need the
jump_label machinery to do is patch the jump sites in the code so that
one of two execution paths can be selected. Since all the ticketlock
jump_label patching happens before SMP is enabled, there's no problem
with changing a lock while a cpu is executing the code.


I also felt agreeing with Jeremy. seemed to me that latter is more
performance friendly. no?.


I thought not about pvop, but about alternative(). jump_labels is used
by spinlock to patch out jump into nops It can be done via alternative()
too I think.

I had remembered that this discussion already happened with Jeremy's V5
of ticketlock patches. pulling out link :

https://lkml.org/lkml/2011/10/13/384

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