[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1292522251.git.jbaron@redhat.com>
Date: Thu, 16 Dec 2010 13:25:11 -0500
From: Jason Baron <jbaron@...hat.com>
To: peterz@...radead.org, hpa@...or.com, rostedt@...dmis.org,
mingo@...e.hu
Cc: mathieu.desnoyers@...ymtl.ca, tglx@...utronix.de,
andi@...stfloor.org, roland@...hat.com, rth@...hat.com,
masami.hiramatsu.pt@...achi.com, fweisbec@...il.com,
avi@...hat.com, davem@...emloft.net, sam@...nborg.org,
ddaney@...iumnetworks.com, michael@...erman.id.au,
linux-kernel@...r.kernel.org
Subject: [PATCH/RFC 0/2] jump label: simplify API
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists