From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@redhat.com>,
John Stultz <john.stultz@linaro.org>,
Sumit Semwal <sumit.semwal@linaro.org>,
Jason Wessel <jason.wessel@windriver.com>,
Daniel Thompson <daniel.thompson@linaro.org>
Subject: [for-next][PATCH 4/9] tracing: kdb: Fix kernel livelock with empty buffers
Date: Fri, 14 Nov 2014 18:24:05 -0500 [thread overview]
Message-ID: <20141114232452.539100956@goodmis.org> (raw)
In-Reply-To: 20141114232401.493543108@goodmis.org
[-- Attachment #1: 0004-tracing-kdb-Fix-kernel-livelock-with-empty-buffers.patch --]
[-- Type: text/plain, Size: 1992 bytes --]
From: Daniel Thompson <daniel.thompson@linaro.org>
Currently kdb's ftdump command will livelock by constantly printk'ing
the empty string at KERN_EMERG level if it run when the ftrace system is
not in use. This occurs because trace_empty() never returns false when
the ring buffers are left at the start of a non-consuming read [launched
by ring_buffer_read_start()].
This patch changes the loop exit condition to use the result of
trace_find_next_entry_inc(). Effectively this switches the non-consuming
kdb dumper to follow the approach of the non-consuming userspace
interface [s_next()] rather than the consuming ftrace_dump().
Link: http://lkml.kernel.org/r/1415277716-19419-3-git-send-email-daniel.thompson@linaro.org
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace_kdb.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/kernel/trace/trace_kdb.c b/kernel/trace/trace_kdb.c
index 8faa7ce58814..b0b1c44e923a 100644
--- a/kernel/trace/trace_kdb.c
+++ b/kernel/trace/trace_kdb.c
@@ -59,19 +59,19 @@ static void ftrace_dump_buf(int skip_lines, long cpu_file)
ring_buffer_read_start(iter.buffer_iter[cpu_file]);
tracing_iter_reset(&iter, cpu_file);
}
- if (!trace_empty(&iter))
- trace_find_next_entry_inc(&iter);
- while (!trace_empty(&iter)) {
+
+ while (trace_find_next_entry_inc(&iter)) {
if (!cnt)
kdb_printf("---------------------------------\n");
cnt++;
- if (trace_find_next_entry_inc(&iter) != NULL && !skip_lines)
+ if (!skip_lines) {
print_trace_line(&iter);
- if (!skip_lines)
trace_printk_seq(&iter.seq);
- else
+ } else {
skip_lines--;
+ }
+
if (KDB_FLAG(CMD_INTERRUPT))
goto out;
}
--
2.1.1
next prev parent reply other threads:[~2014-11-14 23:25 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-14 23:24 [for-next][PATCH 0/9] tracing: Some fixes and cleanups for 3.19 Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 1/9] ftrace: Have the control_ops get a trampoline Steven Rostedt
2014-11-14 23:24 ` Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 2/9] tracing: Fix traceoff_on_warning handling on boot command line Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 3/9] tracing: kdb: Fix kernel panic during ftdump Steven Rostedt
2014-11-14 23:24 ` Steven Rostedt [this message]
2014-11-14 23:24 ` [for-next][PATCH 5/9] tracing: Replace seq_printf by simpler equivalents Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 6/9] tracing: Merge consecutive seq_puts calls Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 7/9] trace: Replace single-character seq_puts with seq_putc Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 8/9] ftrace-graph: show latency-format on print_graph_irq() Steven Rostedt
2014-11-14 23:24 ` [for-next][PATCH 9/9] function_graph: Fix micro seconds notations Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141114232452.539100956@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=daniel.thompson@linaro.org \
--cc=jason.wessel@windriver.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=sumit.semwal@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.