kprobes: Unify kretprobe trampoline handlers and make kretprobe lockless
Status from this message: The following commit has been merged into the perf/kprobes branch of tip:
Get series with b4
b4 am 159870598914.1229682.15230803449082078353.stgit@devnote2Versions newest first · linked by author and title
- v5 Latest21 patches 30 repliesApplied
- v423 patches 17 repliesSuperseded
- v316 patches 3 repliesSuperseded
Earlier versions · 2
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v2 | 15 patches | 4 replies | Superseded | |
| v1 RFC | 14 patches | 4 replies | Superseded |
Patches in v5 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/21 | kprobes: Add generic kretprobe trampoline handlerinclude/ kernel/ | +126 | 0 replies | |
| 2/21 | x86/kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 3/21 | arm: kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 4/21 | arm64: kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 5/21 | arc: kprobes: Use generic kretprobe trampoline handlerarch/ | +2 | 0 replies | |
| 6/21 | csky: kprobes: Use generic kretprobe trampoline handlerarch/ | +2 | 0 replies | |
| 7/21 | ia64: kprobes: Use generic kretprobe trampoline handlerarch/ | +2 | 0 replies | |
| 8/21 | mips: kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 9/21 | parisc: kprobes: Use generic kretprobe trampoline handlerarch/ | +4 | 0 replies | |
| 10/21 | powerpc: kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 11/21 | s390: kprobes: Use generic kretprobe trampoline handlerarch/ | +2 | 0 replies | |
| 12/21 | sh: kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 13/21 | sparc: kprobes: Use generic kretprobe trampoline handlerarch/ | +3 | 0 replies | |
| 14/21 | kprobes: Remove NMI context checkkernel/ | +4 | 10 replies | |
| 15/21 | kprobes: Free kretprobe_instance with rcu callbackinclude/ kernel/ | +10 | 0 replies | |
| 16/21 | kprobes: Make local used functions staticinclude/ kernel/ | +4 | 0 replies | |
| 17/21 | llist: Add nonatomic __llist_add() and __llist_dell_all()drivers/ include/ | +23 | 2 replies | |
| 18/21 | kprobes: Remove kretprobe hashinclude/ include/ kernel/ +2 more | +97 | 0 replies | |
| 19/21 | asm-generic/atomic: Add try_cmpxchg() fallbacksarch/ arch/ arch/ +5 more | +372 | 1 reply | |
| 20/21 | freelist: Lock less freelistinclude/ | +129 | 0 replies | |
| 21/21 | kprobes: Replace rp->free_instance with freelistinclude/ kernel/ | +28 | 0 replies |
Reviews trailers per patch
3 of 21 patches have a Reviewed-by or Acked-by.
| Patch | Will Deacon | Guo Ren | Masami Hiramatsu |
|---|---|---|---|
| 1/21 | |||
| 2/21 | |||
| 3/21 | |||
| 4/21 | |||
| 5/21 | |||
| 6/21 | A-b | ||
| 7/21 | |||
| 8/21 | |||
| 9/21 | |||
| 10/21 | |||
| 11/21 | |||
| 12/21 | |||
| 13/21 | |||
| 14/21 | A-b A-b | ||
| 15/21 | |||
| 16/21 | |||
| 17/21 | |||
| 18/21 | |||
| 19/21 | A-b | ||
| 20/21 | |||
| 21/21 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.
Cover letter [PATCH v5 00/21] kprobes: Unify kretprobe trampoline handlers and make kretprobe lockless
Hi,
Here is the 5th version of the series to unify the kretprobe trampoline handler and to make the kretprobe lockless. Thanks Peter for this work !!
Previous version is here;
https://lkml.kernel.org/r/159861759775.992023.12553306821235086809.stgit@devnote2
This version merges the remove-task-scan patch into remove kretprobe hash patch, fixes code according to the comments, and fixes a minor issues.
This version is also available ongit://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git lockless-kretprobe-v5
I ran smoke test and ftracetest on x86-64 and did build tests for x86-64, i386, arm, arm64, and mips.
Thank you,
---
Masami Hiramatsu (16):
kprobes: Add generic kretprobe trampoline handler x86/kprobes: Use generic kretprobe trampoline handler
arm: kprobes: Use generic kretprobe trampoline handler
arm64: kprobes: Use generic kretprobe trampoline handler
arc: kprobes: Use generic kretprobe trampoline handler
csky: kprobes: Use generic kretprobe trampoline handler
ia64: kprobes: Use generic kretprobe trampoline handler
mips: kprobes: Use generic kretprobe trampoline handler
parisc: kprobes: Use generic kretprobe trampoline handler
powerpc: kprobes: Use generic kretprobe trampoline handler
s390: kprobes: Use generic kretprobe trampoline handler
sh: kprobes: Use generic kretprobe trampoline handler
sparc: kprobes: Use generic kretprobe trampoline handler
kprobes: Remove NMI context check
kprobes: Free kretprobe_instance with rcu callback
kprobes: Make local used functions static
Peter Zijlstra (5):
llist: Add nonatomic __llist_add() and __llist_dell_all()
kprobes: Remove kretprobe hash asm-generic/atomic: Add try_cmpxchg() fallbacks
freelist: Lock less freelist
kprobes: Replace rp->free_instance with freelist
arch/arc/kernel/kprobes.c | 54 ------ arch/arm/probes/kprobes/core.c | 78 --------- arch/arm64/kernel/probes/kprobes.c | 78 --------- arch/csky/kernel/probes/kprobes.c | 77 -------- arch/ia64/kernel/kprobes.c | 77 -------- arch/mips/kernel/kprobes.c | 54 ------ arch/parisc/kernel/kprobes.c | 76 -------- arch/powerpc/kernel/kprobes.c | 53 ------ arch/s390/kernel/kprobes.c | 79 --------- arch/sh/kernel/kprobes.c | 58 ------ arch/sparc/kernel/kprobes.c | 51 ------ arch/x86/include/asm/atomic.h | 2 arch/x86/include/asm/atomic64_64.h | 2 arch/x86/include/asm/cmpxchg.h | 2 arch/x86/kernel/kprobes/core.c | 108 ------------ drivers/gpu/drm/i915/i915_request.c | 6 - include/asm-generic/atomic-instrumented.h | 216 ++++++++++++++---------- include/linux/atomic-arch-fallback.h | 90 +++++++++- include/linux/atomic-fallback.h | 90 +++++++++- include/linux/freelist.h | 129 ++++++++++++++ include/linux/kprobes.h | 74 +++++--- include/linux/llist.h | 23 +++ include/linux/sched.h | 4 kernel/fork.c | 4 kernel/kprobes.c | 264 +++++++++++++---------------- kernel/trace/trace_kprobe.c | 3 scripts/atomic/gen-atomic-fallback.sh | 63 ++++++- scripts/atomic/gen-atomic-instrumented.sh | 29 +++ 28 files changed, 735 insertions(+), 1109 deletions(-) create mode 100644 include/linux/freelist.h
--
Masami Hiramatsu (Linaro) <[email protected]>