Jump Label initialization

From: Jeremy Fitzhardinge
Date: Wed Sep 28 2011 - 22:14:57 EST


Hi all,

I'm trying to use the jump label machinery as part of the pv ticketlock
work I'm doing on x86.

The problem I'm having at the moment is that I do my spinlock setup in
smp_prepare_boot_cpu(), which happens before jump_label_init() gets
called, and so the latter goes and nops out all my enabled jump label key.

I'm experimenting at the moment with a patch to allow
jump_label_enable() to be called fairly early, and have that be
respected by jump_label_init(). I'm doing this by replacing
arch_jump_label_poke_text_early() with
arch_jump_label_transform_early(), which shares most of its code with
its non-early variant, except that it expects to run in a pre-SMP
environment.

Does this seem plausible? (I haven't tested it yet.)

The x86, mips and sparc patches are fairly simple; I forgot to look at
powerpc, and I didn't fully investigate s390.

While my current use-case is x86-specific, it seems generally useful to
make the jump_label machinery available as early as possible. I wonder
if you have any suggestions about how to handle this?

Thanks,
J
--
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/