Messages in this thread | | | Date | Tue, 27 Jul 2010 16:53:58 -0400 | From | Jason Baron <> | Subject | [PATCH 00/12] jump label v10 |
| |
Hi,
updates in -v10:
*removed build-time jump table sort. Since I moved to faster lib/sort.c qsort method, the run-time sort is really fast. This change also reduces the complexity quite a bit.
*added arch_jump_label_text_poke_early(), removing text_poke_early() in generic code. I think for most arches this should be a no-op.
*various Sparc cleanups and build testing on x86_64 using the 4.5 sparc64 cross compiler for both 'asm goto' enabled/disabled cases.
*re-ordered the patches, so as to separate out arch bits cleanly
*various cleanups - incorporating last round of feedback and docs update
Special thanks to Tony Breeds for helping me with the sparc64 cross compiler 4.5 toolchain.
thanks,
-Jason
David S. Miller (1): sparc64: Add jump_label support
Jason Baron (11): jump label: base patch jump label: add module support jump label: move ftrace_dyn_arch_init to common code jump label: initialize workqueue tracepoints *before* they are registered jump label: jump_label_text_reserved() to reserve our jump points jump label: convert jump label to use a key jump label: use lib/sort.c jump label: tracepoint support jump label: convert dynamic debug to use jump labels. jump label: x86 support jump label: add docs
Documentation/jump-label.txt | 151 +++++++++++++ Makefile | 5 + arch/Kconfig | 3 + arch/sparc/Kconfig | 1 + arch/sparc/include/asm/jump_label.h | 32 +++ arch/sparc/kernel/Makefile | 2 + arch/sparc/kernel/jump_label.c | 39 ++++ arch/sparc/kernel/module.c | 6 + arch/x86/Kconfig | 1 + arch/x86/include/asm/alternative.h | 14 ++ arch/x86/include/asm/jump_label.h | 47 ++++ arch/x86/kernel/Makefile | 2 +- arch/x86/kernel/alternative.c | 72 ++++++- arch/x86/kernel/ftrace.c | 70 +------ arch/x86/kernel/jump_label.c | 49 ++++ arch/x86/kernel/kprobes.c | 3 +- arch/x86/kernel/module.c | 3 + arch/x86/kernel/setup.c | 3 + include/asm-generic/vmlinux.lds.h | 10 + include/linux/dynamic_debug.h | 39 ++-- include/linux/jump_label.h | 64 ++++++ include/linux/module.h | 5 +- include/linux/tracepoint.h | 5 +- kernel/Makefile | 2 +- kernel/jump_label.c | 421 +++++++++++++++++++++++++++++++++++ kernel/kprobes.c | 3 +- kernel/module.c | 7 + kernel/trace/ftrace.c | 13 +- kernel/trace/trace_workqueue.c | 10 +- kernel/tracepoint.c | 14 +- lib/dynamic_debug.c | 42 +---- scripts/Makefile.lib | 11 +- scripts/basic/Makefile | 2 +- scripts/basic/hash.c | 64 ------ scripts/gcc-goto.sh | 5 + 35 files changed, 992 insertions(+), 228 deletions(-) create mode 100644 Documentation/jump-label.txt 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_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 delete mode 100644 scripts/basic/hash.c create mode 100644 scripts/gcc-goto.sh
| |