[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180906155217.201016180@goodmis.org>
Date: Thu, 06 Sep 2018 11:52:17 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: linux-kernel@...r.kernel.org
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Ingo Molnar <mingo@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>
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(-)
Powered by blists - more mailing lists