[PATCH/RFC 0/2] jump label: simplify API
From: Jason Baron
Date: Thu Dec 16 2010 - 13:26:23 EST
Hi,
The first patch uses the storage space of the jump label key address
as a pointer into the update table. In this way, we can find all
the addresses that need to be updated without hashing.
The second patch introduces:
static __always_inline bool unlikely_switch(struct jump_label_key *key);
instead of the old JUMP_LABEL(key, label) macro.
In this way, jump labels become really easy to use:
Define:
struct jump_label_key jump_key;
Can be used as:
if (unlikely_switch(&jump_key))
do unlikely code
enable/disale via:
jump_label_enable(&jump_key);
jump_label_disable(&jump_key);
that's it!
Thanks to H. Peter Anvin for suggesting the simpler 'unlikely_switch()'
function.
thanks,
-Jason
Jason Baron (2):
jump label: make enable/disable o(1)
jump label: introduce unlikely_switch()
arch/x86/include/asm/jump_label.h | 22 +++--
arch/x86/kernel/jump_label.c | 2 +-
include/linux/dynamic_debug.h | 24 ++----
include/linux/jump_label.h | 72 ++++++++++-------
include/linux/jump_label_ref.h | 41 ++++++----
include/linux/perf_event.h | 25 +++---
include/linux/tracepoint.h | 8 +-
kernel/jump_label.c | 159 ++++++++++++++++++++++++++++++-------
kernel/perf_event.c | 4 +-
kernel/tracepoint.c | 22 ++---
10 files changed, 243 insertions(+), 136 deletions(-)
--
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/