From: Jason Baron <jbaron@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: mingo@elte.hu, mathieu.desnoyers@polymtl.ca, hpa@zytor.com,
tglx@linutronix.de, rostedt@goodmis.org, andi@firstfloor.org,
roland@redhat.com, rth@redhat.com, mhiramat@redhat.com,
fweisbec@gmail.com, avi@redhat.com, davem@davemloft.net,
vgoyal@redhat.com
Subject: [PATCH 00/11] jump label v7
Date: Fri, 16 Apr 2010 11:24:10 -0400 [thread overview]
Message-ID: <cover.1271427118.git.jbaron@redhat.com> (raw)
Hi,
Based on David Miller's suggestion this version re-works the architecture
interfaces for jump labels. I have also added a documentation file, and
re-freshed the patchset against the latest -tip tree.
The new architecture interface (quoting from the docs file), is as follows:
"
4) architecture interface
There are a few functions and macros which arches must implement in order to
take advantage of this optimization. As previously mentioned, if there is no
architecture support we simply fall back to a traditional, load, test, and
jump sequence.
* add "HAVE_ARCH_JUMP_LABEL" to arch/<arch>/Kconfig to indicate support
* #define JUMP_LABEL_NOP_SIZE, arch/x86/include/asm/jump_label.h
* #define "JUMP_LABEL(tag, label, cond)", arch/x86/include/asm/jump_label.h
* add: void arch_jump_label_transform(struct jump_entry *entry, enum jump_label_type type)
and
const u8 *arch_get_jump_label_nop(void)
see: arch/x86/kernel/jump_label.c
* finally add a definition for "struct jump_entry". This must be done in a
separate .h file, b/c the modpost.c code uses this definition to sort the
the jump label tabel in the vmlinux, so that it does not have to be sorted at
runtime. see: arch/x86/include/asm/jump_entry.h
"
David, I re-worked the sparc64 to match the updated interfaces. The code should
hopefully compile now, although I did not test the sparc bits.
thanks,
-Jason
David S. Miller (1):
sparc64: Add jump_label support
Jason Baron (9):
jump label: base patch
jump label: x86 support
jump label: tracepoint support
jump label: add module support
jump label: move ftrace_dyn_arch_init to common code
jump label: sort jump table at build-time
jump label: initialize workqueue tracepoints *before* they are
registered
jump label: jump_label_text_reserved() to reserve our jump points
jump label: add docs
Mathieu Desnoyers (1):
jump label: notifier atomic call chain notrace
Documentation/jump-label.txt | 140 +++++++++++
Makefile | 6 +-
arch/Kconfig | 3 +
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/jump_entry.h | 16 ++
arch/sparc/include/asm/jump_label.h | 21 ++
arch/sparc/kernel/Makefile | 2 +
arch/sparc/kernel/jump_label.c | 38 +++
arch/sparc/kernel/module.c | 6 +
arch/x86/Kconfig | 1 +
arch/x86/include/asm/alternative.h | 14 ++
arch/x86/include/asm/jump_entry.h | 28 +++
arch/x86/include/asm/jump_label.h | 23 ++
arch/x86/kernel/Makefile | 2 +-
arch/x86/kernel/alternative.c | 71 ++++++-
arch/x86/kernel/ftrace.c | 70 +------
arch/x86/kernel/jump_label.c | 47 ++++
arch/x86/kernel/kprobes.c | 3 +-
arch/x86/kernel/module.c | 3 +
arch/x86/kernel/ptrace.c | 1 +
arch/x86/kernel/setup.c | 3 +
include/asm-generic/vmlinux.lds.h | 22 ++-
include/linux/jump_label.h | 75 ++++++
include/linux/module.h | 5 +-
include/linux/tracepoint.h | 34 ++--
kernel/Makefile | 2 +-
kernel/jump_label.c | 431 +++++++++++++++++++++++++++++++++++
kernel/kprobes.c | 3 +-
kernel/module.c | 7 +
kernel/notifier.c | 6 +-
kernel/trace/ftrace.c | 13 +-
kernel/trace/trace_workqueue.c | 10 +-
kernel/tracepoint.c | 8 +
scripts/mod/Makefile | 1 +
scripts/mod/modpost.c | 71 ++++++-
scripts/mod/modpost.h | 2 +
36 files changed, 1073 insertions(+), 116 deletions(-)
create mode 100644 Documentation/jump-label.txt
create mode 100644 arch/sparc/include/asm/jump_entry.h
create mode 100644 arch/sparc/include/asm/jump_label.h
create mode 100644 arch/sparc/kernel/jump_label.c
create mode 100644 arch/x86/include/asm/jump_entry.h
create mode 100644 arch/x86/include/asm/jump_label.h
create mode 100644 arch/x86/kernel/jump_label.c
create mode 100644 include/linux/jump_label.h
create mode 100644 kernel/jump_label.c
next reply other threads:[~2010-04-16 15:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-16 15:24 Jason Baron [this message]
2010-04-16 15:24 ` [PATCH 01/11] jump label: notifier atomic call chain notrace Jason Baron
2010-04-16 15:24 ` [PATCH 02/11] jump label: base patch Jason Baron
2010-04-16 15:24 ` [PATCH 03/11] jump label: x86 support Jason Baron
2010-04-16 15:24 ` [PATCH 04/11] jump label: tracepoint support Jason Baron
2010-04-16 15:24 ` [PATCH 05/11] jump label: add module support Jason Baron
2010-04-16 15:24 ` [PATCH 06/11] jump label: move ftrace_dyn_arch_init to common code Jason Baron
2010-04-16 15:24 ` [PATCH 07/11] jump label: sort jump table at build-time Jason Baron
2010-04-16 15:24 ` [PATCH 08/11] jump label: initialize workqueue tracepoints *before* they are registered Jason Baron
2010-04-16 15:24 ` [PATCH 09/11] jump label: jump_label_text_reserved() to reserve our jump points Jason Baron
2010-04-16 15:24 ` [PATCH 10/11] sparc64: Add jump_label support Jason Baron
2010-04-16 15:25 ` [PATCH 11/11] jump label: add docs Jason Baron
2010-04-22 23:17 ` [PATCH 00/11] jump label v7 David Miller
2010-04-28 0:58 ` David Miller
2010-04-28 1:39 ` Tony Breeds
2010-04-28 1:49 ` Mathieu Desnoyers
2010-04-28 2:08 ` Tony Breeds
2010-04-28 2:13 ` Mike Frysinger
2010-04-28 14:09 ` Mathieu Desnoyers
2010-04-28 21:53 ` H. Peter Anvin
2010-04-29 18:15 ` Jason Baron
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.1271427118.git.jbaron@redhat.com \
--to=jbaron@redhat.com \
--cc=andi@firstfloor.org \
--cc=avi@redhat.com \
--cc=davem@davemloft.net \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=roland@redhat.com \
--cc=rostedt@goodmis.org \
--cc=rth@redhat.com \
--cc=tglx@linutronix.de \
--cc=vgoyal@redhat.com \
/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.