From: Petr Mladek <pmladek@suse.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Torsten Duwe <duwe@lst.de>, Michael Ellerman <mpe@ellerman.id.au>,
Jiri Kosina <jkosina@suse.cz>, Miroslav Benes <mbenes@suse.cz>,
Jessica Yu <jeyu@redhat.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
live-patching@vger.kernel.org
Subject: Re: [PATCH v7 04/10] ppc64 ftrace_with_regs configuration variables
Date: Fri, 5 Feb 2016 17:18:34 +0100 [thread overview]
Message-ID: <20160205161834.GF731@pathway.suse.cz> (raw)
In-Reply-To: <20160205094803.1e0c6c91@gandalf.local.home>
On Fri 2016-02-05 09:48:03, Steven Rostedt wrote:
> On Fri, 5 Feb 2016 15:05:17 +0100
> Petr Mladek <pmladek@suse.com> wrote:
>
> > On Mon 2016-01-25 16:29:54, Torsten Duwe wrote:
> > > diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
> > > index ef8b916..29b7014 100644
> > > --- a/arch/powerpc/kernel/ftrace.c
> > > +++ b/arch/powerpc/kernel/ftrace.c
> > > @@ -28,6 +28,11 @@
> > >
> > >
> > > #ifdef CONFIG_DYNAMIC_FTRACE
> > > +#if defined(CONFIG_DYNAMIC_FTRACE_WITH_REGS) && defined(CONFIG_PPC64) && \
> > > + !defined(CC_USING_MPROFILE_KERNEL)
> > > +#error "DYNAMIC_FTRACE_WITH_REGS requires working -mprofile-kernel"
> > > +#endif
> >
> > CONFIG_DYNAMIC_FTRACE_WITH_REGS is automatically enabled when
> > both CONFIG_DYNAMIC_FTRACE and HAVE_DYNAMIC_FTRACE_WITH_REGS
> > are enabled.
> >
> > Therefore it is not possible to build kernel with broken gcc
> > and DYNAMIC_FTRACE.
> >
> > IMHO, we need to allow to explicitely disable DYNAMIC_FTRACE_WITH_REGS
> > if the compiler is broken to get around this build error.
> >
> > We either need to define DYNAMIC_FTRACE_WITH_REGS as a proper
> > bool with description, help text, ... Or we need a way to
> > explicitely disable HAVE_DYNAMIC_FTRACE_WITH_REGS. Or something
> > like this.
> >
>
> You mean something like this?
>
> (not tested)
>
> -- Steve
>
> diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> index e45db6b0d878..19377bacebfc 100644
> --- a/kernel/trace/Kconfig
> +++ b/kernel/trace/Kconfig
> @@ -470,6 +470,19 @@ config DYNAMIC_FTRACE_WITH_REGS
> def_bool y
> depends on DYNAMIC_FTRACE
> depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
> + depends on !DISABLE_DYNAMIC_FTRACE_WITH_REGS
> +
> +config DISABLE_DYNAMIC_FTRACE_WITH_REGS
> + bool "Force build to not have function tracer pass in registers"
> + depends on DYNAMIC_FTRACE
> + depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
> + help
> + If the architecture supports passing in registers to the function
> + tracer, then that is automatically enabled. But there may be some
> + compilers out there that are broken and cause this to fail.
> + This option makes the build think that the architecture does not
> + support the register passing and allows the build to work even
> + with compilers that do not support the feature.g
s/feature.g/feature/
> config FUNCTION_PROFILER
> bool "Kernel function profiler"
It works but the extra option and reverse logic makes things even
more complicated. Whem I think about it, the change below does similar
job and looks more strightforwad:
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index a138f6d..de6dab0 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -449,7 +449,7 @@ config PROBE_EVENTS
def_bool n
config DYNAMIC_FTRACE
- bool "enable/disable function tracing dynamically"
+ bool "Enable/Disable function tracing dynamically"
depends on FUNCTION_TRACER
depends on HAVE_DYNAMIC_FTRACE
default y
@@ -472,9 +472,17 @@ config DYNAMIC_FTRACE
otherwise has native performance as long as no tracing is active.
config DYNAMIC_FTRACE_WITH_REGS
- def_bool y
+ bool "Pass registers to function tracer"
depends on DYNAMIC_FTRACE
depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
+ default y
+ help
+ This option enables passing the current state of processor
+ registers to the function tracer. It allows to do a more
+ detailed analyze and print more information.
+
+ Say Y here if you are unsure. The only exception is if
+ you want to pass a build error caused by a broken compiler.
config FUNCTION_PROFILER
bool "Kernel function profiler"
I made "enable/disable" uppercase because it looked weird in
context of other descritions.
Best Regards,
Petr
next prev parent reply other threads:[~2016-02-05 16:18 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-04 14:29 [PATCH v7 00/10] ftrace with regs + live patching for ppc64 LE (ABI v2) Torsten Duwe
2016-01-25 15:26 ` [PATCH v7 01/10] ppc64 (le): prepare for -mprofile-kernel Torsten Duwe
2016-01-25 15:27 ` [PATCH v7 02/10] ppc64le FTRACE_WITH_REGS implementation Torsten Duwe
2016-01-25 15:29 ` [PATCH v7 03/10] ppc use ftrace_modify_all_code default Torsten Duwe
2016-01-25 15:29 ` [PATCH v7 04/10] ppc64 ftrace_with_regs configuration variables Torsten Duwe
2016-02-05 14:05 ` Petr Mladek
2016-02-05 14:48 ` Steven Rostedt
2016-02-05 16:18 ` Petr Mladek [this message]
2016-02-05 16:30 ` Steven Rostedt
2016-02-06 10:32 ` Torsten Duwe
2016-02-08 10:34 ` Petr Mladek
2016-02-08 12:12 ` Torsten Duwe
2016-02-08 15:23 ` Petr Mladek
2016-02-08 15:49 ` Steven Rostedt
2016-02-08 16:32 ` Petr Mladek
2016-02-09 9:02 ` Torsten Duwe
2016-01-25 15:30 ` [PATCH v7 05/10] ppc64 ftrace_with_regs: spare early boot and low level Torsten Duwe
2016-01-25 15:31 ` [PATCH v7 06/10] ppc64 ftrace: disable profiling for some functions Torsten Duwe
2016-02-10 1:50 ` Michael Ellerman
2016-02-10 18:01 ` Torsten Duwe
2016-01-25 15:31 ` [PATCH v7 07/10] ppc64 ftrace: disable profiling for some files Torsten Duwe
2016-02-10 0:33 ` Michael Ellerman
2016-02-10 17:50 ` Torsten Duwe
2016-01-25 15:33 ` [PATCH v7 08/10] Implement kernel live patching for ppc64le (ABIv2) Torsten Duwe
2016-01-25 15:33 ` [PATCH v7 09/10] Enable LIVEPATCH to be configured on ppc64le and add livepatch.o if it is selected Torsten Duwe
2016-01-28 15:32 ` [PATCH v7 10/10] livepatch: Detect offset for the ftrace location during build Petr Mladek
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=20160205161834.GF731@pathway.suse.cz \
--to=pmladek@suse.com \
--cc=duwe@lst.de \
--cc=jeyu@redhat.com \
--cc=jkosina@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=mpe@ellerman.id.au \
--cc=rostedt@goodmis.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.