All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	linux-arch@vger.kernel.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Jiri Kosina <jkosina@suse.cz>,
	Josh Poimboeuf <notifications@github.com>
Subject: Re: [RFA][PATCH 00/27] ftrace: Remove ftrace_start/stop() and friends
Date: Mon, 30 Jun 2014 12:13:08 +0900	[thread overview]
Message-ID: <53B0D5C4.8000909@hitachi.com> (raw)
In-Reply-To: <20140626165221.736847419@goodmis.org>

(2014/06/27 1:52), Steven Rostedt wrote:
> * Request for Acks *
> 
>>From the time I created the use of function_trace_stop, I hated it.
> There was two reasons to create this, one was to try to lower the
> function tracing overhead when debugfs file tracing_enable was set to zero
> (note, tracing_enable no longer exists), the other was a way to stop
> function tracing when going down into suspend and resume.
> 
> Some function was causing suspend and resume to reboot the kernel. In
> debugging this I found that an empty callback from mcount would work.
> That is, instead of running the tracing code, I would just have the
> function trace callback be a nop:
> 
>  void function_trace_call(unsigned long ip, unsigned long parent_ip)
>  {
>  }
> 
> This worked. That means the code in mcount wasn't an issue. I started
> bisecting the contents of the function_trace_call and found that this
> would cause the system to reboot!
> 
>  void function_trace_call(unsigned long ip, unsigned long parent_ip)
>  {
> 	smp_processor_id();
>  }
> 
> That is, just calling smp_processor_id() was enough to trigger a triple
> fault on resume of the system.
> 
> Today, this big hammer approach of disabling the function tracer is starting
> to show its issues. It can't help out in debugging suspend and resume,
> and there's other function trace callbacks that should still work.
> 
> I also have learned ways to bisect functions that cause bugs in function
> tracing. I finally got some time to do so with a box that would reboot
> on suspend and resume. This led me down to a single function:
> 
>  restore_processor_state()
> 
> This made perfect sense, as this function is called from assembly on a
> CPU startup. One of the jobs of this function was to set up the GS register.
> That register is also the register that is used by smp_processor_id()
> to find what CPU the task is running on. With it not set up it will offset
> into some random location and fault. As the fault handlers can also be
> traced, those will fault too and finally the system will reset due to a
> triple fault.

Uh, from the same reason, I must list it in the kprobe blacklist too...

BTW, as far as I can review, x86 and generic parts of the series seems
OK to me. :)

Thank you,

-- 
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com

  parent reply	other threads:[~2014-06-30  3:13 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-26 16:52 [RFA][PATCH 00/27] ftrace: Remove ftrace_start/stop() and friends Steven Rostedt
2014-06-26 16:52 ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 01/27] x86, power, suspend: Annotate restore_processor_state() with notrace Steven Rostedt
2014-06-28  0:02   ` Rafael J. Wysocki
2014-06-26 16:52 ` [RFA][PATCH 02/27] PM / Sleep: Remove ftrace_stop/start() from suspend and hibernate Steven Rostedt
2014-06-28  0:02   ` Rafael J. Wysocki
2014-06-26 16:52 ` [RFA][PATCH 03/27] tracing: Remove ftrace_stop/start() from reading the trace file Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 04/27] ftrace-graph: Remove dependency of ftrace_stop() from ftrace_graph_stop() Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 05/27] ftrace/x86: Add call to ftrace_graph_is_dead() in function graph code Steven Rostedt
2014-07-15 15:47   ` H. Peter Anvin
2014-06-26 16:52 ` [RFA][PATCH 06/27] microblaze: ftrace: " Steven Rostedt
2014-07-03 16:34   ` Steven Rostedt
2014-07-09 14:03   ` Steven Rostedt
2014-07-18  8:19     ` Michal Simek
2014-06-26 16:52 ` [RFA][PATCH 07/27] MIPS: " Steven Rostedt
2014-07-02 14:31   ` Steven Rostedt
2014-07-09 15:48     ` James Hogan
2014-07-09 15:48       ` James Hogan
2014-07-03 16:36   ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 08/27] parisc: " Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 09/27] powerpc/ftrace: " Steven Rostedt
2014-07-09 14:04   ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 10/27] sh: ftrace: " Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 11/27] ftrace-graph: Remove usage of ftrace_stop() in ftrace_graph_stop() Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 12/27] ftrace: Remove ftrace_start/stop() Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 13/27] ftrace: Do no disable function tracing on enabling function tracing Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 14/27] ftrace: Remove function_trace_stop check from list func Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 15/27] ftrace: Remove check for HAVE_FUNCTION_TRACE_MCOUNT_TEST Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 16/27] ftrace: x86: Remove check of obsolete variable function_trace_stop Steven Rostedt
2014-07-15 15:48   ` H. Peter Anvin
2014-06-26 16:52 ` [RFA][PATCH 17/27] tile: ftrace: " Steven Rostedt
2014-06-26 17:33   ` Steven Rostedt
2014-06-26 17:33     ` Steven Rostedt
2014-07-03 13:53   ` Chris Metcalf
2014-07-03 13:53     ` Chris Metcalf
2014-07-03 14:02     ` Steven Rostedt
2014-07-03 14:02       ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 18/27] sparc64,ftrace: " Steven Rostedt
2014-06-26 17:34   ` Steven Rostedt
2014-06-26 17:34     ` Steven Rostedt
2014-07-03 16:41   ` Steven Rostedt
2014-07-03 16:41     ` Steven Rostedt
2014-07-04  4:18     ` David Miller
2014-07-04  4:18       ` David Miller
2014-06-26 16:52 ` [RFA][PATCH 19/27] sh: ftrace: " Steven Rostedt
2014-06-26 17:35   ` Steven Rostedt
2014-06-26 17:35     ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 20/27] parisc: " Steven Rostedt
2014-06-26 17:35   ` Steven Rostedt
2014-06-26 17:35     ` Steven Rostedt
2014-06-29 21:20     ` Helge Deller
2014-06-30 14:11       ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 21/27] MIPS: " Steven Rostedt
2014-06-26 17:37   ` Steven Rostedt
2014-06-26 17:37     ` Steven Rostedt
2014-07-02 14:32   ` Steven Rostedt
2014-07-09 14:15   ` Steven Rostedt
2014-07-15 21:58   ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 22/27] microblaze: " Steven Rostedt
2014-06-26 17:38   ` Steven Rostedt
2014-06-26 17:38     ` Steven Rostedt
2014-07-09 14:16   ` Steven Rostedt
2014-07-15 21:51   ` Steven Rostedt
2014-07-18  8:17     ` Michal Simek
2014-06-26 16:52 ` [RFA][PATCH 23/27] metag: " Steven Rostedt
2014-06-26 17:38   ` Steven Rostedt
2014-06-26 17:38     ` Steven Rostedt
2014-07-02 13:34     ` James Hogan
2014-07-02 13:34       ` James Hogan
2014-07-02 14:22       ` Steven Rostedt
2014-07-02 14:22         ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 24/27] Blackfin: " Steven Rostedt
2014-06-26 17:39   ` Steven Rostedt
2014-06-26 17:39     ` Steven Rostedt
2014-06-26 19:25   ` Mike Frysinger
2014-06-26 19:34     ` Steven Rostedt
2014-06-26 16:52 ` [RFA][PATCH 25/27] arm64, " Steven Rostedt
2014-06-26 17:40   ` Steven Rostedt
2014-06-26 17:40     ` Steven Rostedt
2014-06-27 12:44   ` Will Deacon
2014-07-01 11:33     ` AKASHI Takahiro
2014-06-26 16:52 ` [RFA][PATCH 26/27] s390/ftrace: remove " Steven Rostedt
2014-06-26 17:41   ` Steven Rostedt
2014-06-26 17:41     ` Steven Rostedt
2014-06-27  6:01     ` Heiko Carstens
2014-06-26 16:52 ` [RFA][PATCH 27/27] tracing: Remove function_trace_stop and HAVE_FUNCTION_TRACE_MCOUNT_TEST Steven Rostedt
2014-06-30  3:13 ` Masami Hiramatsu [this message]
2014-06-30 14:16   ` [RFA][PATCH 00/27] ftrace: Remove ftrace_start/stop() and friends Steven Rostedt
2014-07-01  0:58     ` Masami Hiramatsu

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=53B0D5C4.8000909@hitachi.com \
    --to=masami.hiramatsu.pt@hitachi.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=jkosina@suse.cz \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=notifications@github.com \
    --cc=rjw@rjwysocki.net \
    --cc=rostedt@goodmis.org \
    --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.