tracing vs world
Status from this message: The following commit has been merged into the locking/core branch of tip:
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest27 patches 55 repliesApplied
- v322 patches 72 repliesSuperseded
Patches in v4 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/27 | lockdep: Teach lockdep about "USED" <- "IN-NMI" inversionskernel/ | +50 | 7 replies | |
| 2/27 | hardirq/nmi: Allow nested nmi_enter()arch/ arch/ arch/ +4 more | +22 | 10 replies | |
| 3/27 | x86/entry: Flip _TIF_SIGPENDING and _TIF_NOTIFY_RESUME handlingarch/ | +4 | 1 reply | |
| 4/27 | x86/mce: Delete ist_begin_non_atomic()arch/ arch/ arch/ +1 more | +36 | 2 replies | |
| 5/27 | x86: Replace ist_enter() with nmi_enter()arch/ arch/ arch/ +2 more | +32 | 13 replies | |
| 6/27 | x86/doublefault: Remove memmove() callarch/ | +6 | 1 reply | |
| 7/27 | rcu: Make RCU IRQ enter/exit functions rely on in_nmi()kernel/ | +14 | 1 reply | |
| 8/27 | rcu/kprobes: Comment why rcu_nmi_enter() is marked NOKPROBEkernel/ | +8 | 1 reply | |
| 9/27 | rcu: Rename rcu_irq_{enter,exit}_irqson()include/ include/ include/ +4 more | +16 | 3 replies | |
| 10/27 | rcu: Mark rcu_dynticks_curr_cpu_in_eqs() inlinekernel/ | +1 | 0 replies | |
| 11/27 | rcu,tracing: Create trace_rcu_{enter,exit}()include/ | +29 | 2 replies | |
| 12/27 | sched,rcu,tracing: Avoid tracing before in_nmi() is correctinclude/ | +11 | 0 replies | |
| 13/27 | x86,tracing: Add comments to do_nmi()arch/ | +8 | 0 replies | |
| 14/27 | perf,tracing: Prepare the perf-trace interface for RCU changeskernel/ | +5 | 0 replies | |
| 15/27 | tracing: Employ trace_rcu_{enter,exit}()kernel/ | +3 | 0 replies | |
| 16/27 | tracing: Remove regular RCU context for _rcuidle tracepoints (again)include/ | +2 | 14 replies | |
| 17/27 | perf,tracing: Allow function tracing when !RCUkernel/ | +1 | 0 replies | |
| 18/27 | x86/int3: Ensure that poke_int3_handler() is not tracedarch/ arch/ arch/ | +12 | 0 replies | |
| 19/27 | locking/atomics, kcsan: Add KCSAN instrumentationinclude/ scripts/ | +212 | 0 replies | |
| 20/27 | asm-generic/atomic: Use __always_inline for pure wrappersinclude/ include/ scripts/ +1 more | +340 | 0 replies | |
| 21/27 | asm-generic/atomic: Use __always_inline for fallback wrappersinclude/ scripts/ scripts/ +18 more | +192 | 0 replies | |
| 22/27 | compiler: Simple READ/WRITE_ONCE() implementationsinclude/ | +8 | 0 replies | |
| 23/27 | locking/atomics: Flip fallbacks and instrumentationarch/ arch/ arch/ +25 more | +2403 | 0 replies | |
| 24/27 | x86/int3: Avoid atomic instrumentationarch/ | +3 | 0 replies | |
| 25/27 | lib/bsearch: Provide __always_inline variantinclude/ lib/ | +26 | 0 replies | |
| 26/27 | x86/int3: Inline bsearch()arch/ | +4 | 0 replies | |
| 27/27 | x86/int3: Ensure that poke_int3_handler() is not sanitizedarch/ arch/ include/ +3 more | +21 | 0 replies |
Reviews trailers per patch
18 of 27 patches have a Reviewed-by or Acked-by.
| Patch | Petr Mladek | Will Deacon | Marc Zyngier | Steven Rostedt (VMware) | Thomas Gleixner | Mark Rutland | Dmitry Vyukov | Paul E. McKenney | Masami Hiramatsu | Joel Fernandes (Google) | Andy Lutomirski | Frederic Weisbecker |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1/27 | R-b | R-b | ||||||||||
| 2/27 | R-b | A-b | A-b | R-b | ||||||||
| 3/27 | ||||||||||||
| 4/27 | R-b | |||||||||||
| 5/27 | A-b | R-b | ||||||||||
| 6/27 | A-b | |||||||||||
| 7/27 | R-b | |||||||||||
| 8/27 | R-b | R-b | A-b | R-b | ||||||||
| 9/27 | R-b | R-b | ||||||||||
| 10/27 | R-b | |||||||||||
| 11/27 | R-b | |||||||||||
| 12/27 | R-b | |||||||||||
| 13/27 | R-b | |||||||||||
| 14/27 | ||||||||||||
| 15/27 | R-b | |||||||||||
| 16/27 | R-b | |||||||||||
| 17/27 | ||||||||||||
| 18/27 | Not-Signed-off-by | |||||||||||
| 19/27 | R-b | |||||||||||
| 20/27 | A-b | |||||||||||
| 21/27 | A-b | |||||||||||
| 22/27 | ||||||||||||
| 23/27 | ||||||||||||
| 24/27 | ||||||||||||
| 25/27 | ||||||||||||
| 26/27 | ||||||||||||
| 27/27 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 12 reviewers.
Cover letter [PATCH v4 00/27] tracing vs world
Hi all,
These here patches are the result of Mathieu and Steve trying to get commit 865e63b04e9b2 ("tracing: Add back in rcu_irq_enter/exit_irqson() for rcuidle tracepoints") reverted again.
One of the things discovered is that tracing MUST NOT happen before nmi_enter() or after nmi_exit(). Audit results of the previous version are still valid.
This then snowballed into auditing other exceptions, notably #MC, and #BP. Lots of patches came out of that.
I would love for some tooling in this area. Dan, smatch has full callchains right? Would it be possible to have an __assert_no_tracing__() marker of sorts that validates that no possible callchain reaching that assertion has hit tracing before that point?
It would mean you have to handle the various means of 'notrace' annotation (both the function attribute as well as the Makefile rules), recognising tracepoints and ideally handling NOKPROBE annotations.
NOTE:
patches 19,20,21 already live in tip/locking/kcsan and are included here because 20,21 are needed for the patches following to make sense. If/when this gets merged, we need to figure out how to resolve this.
Changes since -v3:
- Replaced the #DF patch with one from Boris
- Moved trace_rcu_{enter,exit}() into rcupdate.h
- Flipped TIF_SIGPENDING and TIF_NOTIFY_RESUME handling
- Added comment to nmi_enter()
- fixed various compile fails
- inlined bsearch()
- Added lockdep checking for USED <- IN-NMI recursion
- Added rcu_nmi_enter vs kprobes comment
Changes since -v2:
- #MC / ist_enter() audit -- first 4 patches. After this in_nmi() should always be set 'correctly'.
- RCU IRQ enter/exit function simplification
- #BP / poke_int3_handler() audit -- last many patches.
- pulled in some locking/kcsan patches
Changes since -v1:
- Added tags
- Changed #4; changed nmi_enter() to use __preempt_count_add() vs marking preempt_count_add() notrace.
- Changed #5; confusion on which functions are notrace due to Makefile
- Added #9; remove limitation on the perf-function-trace coupling