From: Jason Baron <jbaron@redhat.com>
To: peterz@infradead.org, hpa@zytor.com, rostedt@goodmis.org, mingo@elte.hu
Cc: mathieu.desnoyers@polymtl.ca, tglx@linutronix.de,
andi@firstfloor.org, roland@redhat.com, rth@redhat.com,
masami.hiramatsu.pt@hitachi.com, fweisbec@gmail.com,
avi@redhat.com, davem@davemloft.net, sam@ravnborg.org,
ddaney@caviumnetworks.com, michael@ellerman.id.au,
linux-kernel@vger.kernel.org
Subject: [PATCH/RFC 0/2] jump label: simplify API
Date: Thu, 16 Dec 2010 13:25:11 -0500 [thread overview]
Message-ID: <cover.1292522251.git.jbaron@redhat.com> (raw)
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(-)
next reply other threads:[~2010-12-16 18:26 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-16 18:25 Jason Baron [this message]
2010-12-16 18:25 ` [PATCH/RFC 1/2] jump label: make enable/disable o(1) Jason Baron
2010-12-16 19:10 ` Peter Zijlstra
2010-12-16 19:23 ` Jason Baron
2010-12-16 19:33 ` Peter Zijlstra
2010-12-16 19:36 ` Jason Baron
2010-12-16 19:41 ` Peter Zijlstra
2010-12-16 19:48 ` Jason Baron
2010-12-16 20:09 ` Steven Rostedt
2010-12-16 20:36 ` Mathieu Desnoyers
2010-12-16 20:43 ` Peter Zijlstra
2010-12-16 20:50 ` Mathieu Desnoyers
2010-12-16 20:56 ` Peter Zijlstra
2010-12-17 20:07 ` Jason Baron
2010-12-17 20:51 ` David Daney
2010-12-17 21:12 ` Steven Rostedt
2010-12-17 21:32 ` Jason Baron
2010-12-16 20:45 ` Mathieu Desnoyers
2010-12-16 18:25 ` [PATCH/RFC 2/2] jump label: introduce unlikely_switch() Jason Baron
2010-12-16 19:22 ` [PATCH/RFC 0/2] jump label: simplify API Mathieu Desnoyers
2010-12-16 20:18 ` Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1292522251.git.jbaron@redhat.com \
--to=jbaron@redhat.com \
--cc=andi@firstfloor.org \
--cc=avi@redhat.com \
--cc=davem@davemloft.net \
--cc=ddaney@caviumnetworks.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=michael@ellerman.id.au \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=roland@redhat.com \
--cc=rostedt@goodmis.org \
--cc=rth@redhat.com \
--cc=sam@ravnborg.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.