From: "Frédéric Weisbecker" <fweisbec@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
Steven Noonan <steven@uplinklabs.net>,
Arjan van de Ven <arjan@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [Patch -tip 0/4] Creation of the initcall tracer
Date: Wed, 24 Sep 2008 10:36:09 +0100 [thread overview]
Message-ID: <48DA0A09.5080709@gmail.com> (raw)
In-Reply-To: <20080923193106.GA21422@elte.hu>
[-- Attachment #1: Type: text/plain, Size: 4877 bytes --]
Ingo Molnar a écrit :
> * Ingo Molnar <mingo@elte.hu> wrote:
>
>> i've integrated tip/tracing/fastboot into tip/master and have started
>> testing it. It passed the basic tests already so i've just pushed out
>> the new tip/master. Please double-check that i have not messed up the
>> rename or the integration somewhere.
>
> FYI, -tip testing found a boot hang with CONFIG_BOOT_TRACER=y, on a
> 32-bit T60 laptop. I've attached the config that provokes the hang. (you
> need initcall_debug on the boot commandline)
>
> The hang always happens after a specific initcall, shortly after tracing
> is enabled. It just hangs indefinitely there, the last line displayed
> was:
>
> [ 0.004017] initcall ehci_hcd_init+0x0/0x80 returned 0 after 228 msecs
>
> it should have printed this next:
>
> [ 0.808024] calling ohci_hcd_mod_init+0x0/0x80 @ 10
>
> but that line is never printed.
>
> i've bisected the hang down to this specific commit:
>
> | 35df98dfe2b2503436a8cfda301657810df50a3a is first bad commit
> | commit 35df98dfe2b2503436a8cfda301657810df50a3a
> | Author: Frédéric Weisbecker <fweisbec@gmail.com>
> | Date: Tue Sep 23 11:38:18 2008 +0100
> |
> | tracing/ftrace: launch boot tracing after pre-smp initcalls
>
> An idea: maybe the boot tracer is interacting with the ftrace self-tests
> somehow? CONFIG_FTRACE_SELFTEST=y is enabled.
>
> another thing i noticed is that the sysprof tracer was initialized and
> self-tested shortly before the hang occured. Might be unrelated.
>
> the bisection log is:
>
> # bad: [6522eab5] Merge branch 'x86/uv'
> # good: [699b81f5] Merge branch 'x86/iommu'
> # bad: [8007aae9] timers: fix build error in !oneshot case
> # good: [7f29b23d] Merge branch 'core/rcu'
> # bad: [a54f17e3] manual merge of tracing/fastboot
> # good: [bcbbe946] tracing/ftrace: make tracing suitable to run the b
> # good: [d7095e5a] Merge branch 'fastboot'
> # bad: [35df98df] tracing/ftrace: launch boot tracing after pre-smp
> # good: [42aaa6be] tracing/ftrace: give an entry on the config for bo
>
> Ingo
>
Ingo Molnar a écrit :
> * Ingo Molnar <mingo@elte.hu> wrote:
>
>> i've integrated tip/tracing/fastboot into tip/master and have started
>> testing it. It passed the basic tests already so i've just pushed out
>> the new tip/master. Please double-check that i have not messed up the
>> rename or the integration somewhere.
>
> FYI, -tip testing found a boot hang with CONFIG_BOOT_TRACER=y, on a
> 32-bit T60 laptop. I've attached the config that provokes the hang. (you
> need initcall_debug on the boot commandline)
>
> The hang always happens after a specific initcall, shortly after tracing
> is enabled. It just hangs indefinitely there, the last line displayed
> was:
>
> [ 0.004017] initcall ehci_hcd_init+0x0/0x80 returned 0 after 228 msecs
>
> it should have printed this next:
>
> [ 0.808024] calling ohci_hcd_mod_init+0x0/0x80 @ 10
>
> but that line is never printed.
>
> i've bisected the hang down to this specific commit:
>
> | 35df98dfe2b2503436a8cfda301657810df50a3a is first bad commit
> | commit 35df98dfe2b2503436a8cfda301657810df50a3a
> | Author: Frédéric Weisbecker <fweisbec@gmail.com>
> | Date: Tue Sep 23 11:38:18 2008 +0100
> |
> | tracing/ftrace: launch boot tracing after pre-smp initcalls
>
> An idea: maybe the boot tracer is interacting with the ftrace self-tests
> somehow? CONFIG_FTRACE_SELFTEST=y is enabled.
>
> another thing i noticed is that the sysprof tracer was initialized and
> self-tested shortly before the hang occured. Might be unrelated.
>
> the bisection log is:
>
> # bad: [6522eab5] Merge branch 'x86/uv'
> # good: [699b81f5] Merge branch 'x86/iommu'
> # bad: [8007aae9] timers: fix build error in !oneshot case
> # good: [7f29b23d] Merge branch 'core/rcu'
> # bad: [a54f17e3] manual merge of tracing/fastboot
> # good: [bcbbe946] tracing/ftrace: make tracing suitable to run the b
> # good: [d7095e5a] Merge branch 'fastboot'
> # bad: [35df98df] tracing/ftrace: launch boot tracing after pre-smp
> # good: [42aaa6be] tracing/ftrace: give an entry on the config for bo
>
> Ingo
>
Hehe! I was preparing a patch because I saw last night that the self-tests were reseting and touching the ring-buffer during the initcall tracing.
And now I can see the results of this problem....
Following is a patch that should fix it.
Thanks for this report!
---
[Patch -tip] Disable tracers self-tests when boot tracer is selected
The tracing engine resets the ring buffer and the tracers touch it too during self-tests. These self-tests happen during tracers registering
and work against boot tracing which is logging initcalls.
We have to disable tracing self-tests if the boot-tracer is selected.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Reported-by: Ingo Molnar <mingo@elte.hu>
---
[-- Attachment #2: selftests.diff --]
[-- Type: text/plain, Size: 943 bytes --]
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index 81a17ef..87c9282 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -126,7 +126,9 @@ config BOOT_TRACER
the timings of the initcalls. Its aim is to be parsed by the
/scripts/bootgraph.pl tool to produce pretty graphics about
boot inefficiencies, giving a visual representation of the
- delays during initcalls.
+ delays during initcalls. Note that tracers self tests can't
+ be enabled if this tracer is selected since only one tracer
+ should touch the tracing buffer at a time.
config STACK_TRACER
bool "Trace max stack"
@@ -168,8 +170,7 @@ config FTRACE_SELFTEST
config FTRACE_STARTUP_TEST
bool "Perform a startup test on ftrace"
- depends on TRACING
- depends on DEBUG_KERNEL
+ depends on TRACING && DEBUG_KERNEL && !BOOT_TRACER
select FTRACE_SELFTEST
help
This option performs a series of startup tests on ftrace. On bootup
next prev parent reply other threads:[~2008-09-24 8:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-23 10:29 [Patch -tip 0/4] Creation of the initcall tracer Frédéric Weisbecker
2008-09-23 10:00 ` Ingo Molnar
2008-09-23 11:42 ` Frédéric Weisbecker
2008-09-23 19:31 ` Ingo Molnar
2008-09-24 9:36 ` Frédéric Weisbecker [this message]
2008-09-24 8:58 ` Ingo Molnar
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=48DA0A09.5080709@gmail.com \
--to=fweisbec@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=arjan@infradead.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
--cc=steven@uplinklabs.net \
--cc=tglx@linutronix.de \
/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.