lkml.org 
[lkml]   [2018]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[PATCH 0/2] [GIT PULL] tracing: Fix two annoying bugs

Linus,

This fixes two bugs:

- The first one is a side effect caused by using SRCU for rcuidle
tracepoints. It seems that perf was depending on the rcuidle
tracepoints to make RCU watch when it wasn't. The real fix will
be to have perf use SRCU instead of depending on RCU watching,
but that can't be done until SRCU is safe to use in NMI context
(Paul's working on that).

- The second bug fix is for a bug that's been periodically making
my tests fail randomly for some time. I haven't had time to track
it down, but finally have. It has to do with stressing NMIs (via perf)
while enabling or disabling ftrace function handling with lockdep
enabled. If an interrupt happens and just as it returns, it sets
lockdep back to "interrupts enabled" but before it returns an NMI
is triggered, and if this happens while printk_nmi_enter has a
breakpoint attached to it (because ftrace is converting it to or from
nop to call fentry), the breakpoint trap also calls into lockdep,
and since returning from the NMI to a interrupt handler, interrupts
were disabled when the NMI went off, lockdep keeps its state as
interrupts disabled when it returns back from the interrupt handler
where interrupts are enabled. This causes lockdep_assert_irqs_enabled()
to trigger a false positive.

Please pull the latest trace-v4.19-rc2 tree, which can be found at:


git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
trace-v4.19-rc2

Tag SHA1: 0564bf12a919d435afdcc74bd015f9249dd572db
Head SHA1: d1c392c9e2a301f38998a353f467f76414e38725


Steven Rostedt (VMware) (2):
tracing: Add back in rcu_irq_enter/exit_irqson() for rcuidle tracepoints
printk/tracing: Do not trace printk_nmi_enter()

----
include/linux/tracepoint.h | 8 ++++++--
kernel/printk/printk_safe.c | 4 ++--
2 files changed, 8 insertions(+), 4 deletions(-)

\
 
 \ /
  Last update: 2018-09-06 17:55    [W:0.039 / U:0.404 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site