Message ID | 20160208152306.GF30328@pathway.suse.cz (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Mon, 8 Feb 2016 16:23:06 +0100 Petr Mladek <pmladek@suse.com> wrote: > >From 2b0fcb678d7720d03f9c9f233b61ed9ed4d420b3 Mon Sep 17 00:00:00 2001 > From: Petr Mladek <pmladek@suse.com> > Date: Mon, 8 Feb 2016 16:03:03 +0100 > Subject: [PATCH] ftrace: Allow to explicitly disable the build of the dynamic > ftrace with regs > > This patch allows to explicitly disable > CONFIG_DYNAMIC_FTRACE_WITH_REGS. We will need to do so on > PPC with a broken gcc. This situation will be detected at > buildtime and could not be handled by Kbuild automatically. Wait. Can it be detected at build time? That is, does it cause a build error? If so, then you can have Kbuild automatically detect this and set the proper value. We do this with 'asm goto'. There's tricks in the build system that can change the configs based on if a compiler is broken or not. > > Also it fixes the prompt of DYNAMIC_FTRACE. The uppercase > better fits the style of the other menu entries. s/fixes/updates/ -- Steve > > This patch does not change the default value. > > Signed-off-by: Petr Mladek <pmladek@suse.com> > Acked-by: Torsten Duwe <duwe@lst.de> > ---
On Mon 2016-02-08 10:49:28, Steven Rostedt wrote: > On Mon, 8 Feb 2016 16:23:06 +0100 > Petr Mladek <pmladek@suse.com> wrote: > > > >From 2b0fcb678d7720d03f9c9f233b61ed9ed4d420b3 Mon Sep 17 00:00:00 2001 > > From: Petr Mladek <pmladek@suse.com> > > Date: Mon, 8 Feb 2016 16:03:03 +0100 > > Subject: [PATCH] ftrace: Allow to explicitly disable the build of the dynamic > > ftrace with regs > > > > This patch allows to explicitly disable > > CONFIG_DYNAMIC_FTRACE_WITH_REGS. We will need to do so on > > PPC with a broken gcc. This situation will be detected at > > buildtime and could not be handled by Kbuild automatically. > > Wait. Can it be detected at build time? That is, does it cause a build > error? If so, then you can have Kbuild automatically detect this and > set the proper value. We do this with 'asm goto'. There's tricks in the > build system that can change the configs based on if a compiler is > broken or not. Just to be sure. Do you suggest to define CONFIG_DYNAMIC_FTRACE_WITH_REGS via a check in Makefile and rename it to e.g. CC_FTRACE_WITH_REGS. Or should we define another variable, e.g. CC_BROKEN_DYNAMC_FTRACE_WITH_REGS? And then replace all occurences in the code by something like: -#ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS +#if defined(CONFIG_DYNAMIC_FTRACE_WITH_REGS) && \ + !defined(CC_BROKEN_DYNAMC_FTRACE_WITH_REGS) ? Best Regards, Petr
On Mon, Feb 08, 2016 at 10:49:28AM -0500, Steven Rostedt wrote: > On Mon, 8 Feb 2016 16:23:06 +0100 > Petr Mladek <pmladek@suse.com> wrote: > > > >From 2b0fcb678d7720d03f9c9f233b61ed9ed4d420b3 Mon Sep 17 00:00:00 2001 > > From: Petr Mladek <pmladek@suse.com> > > Date: Mon, 8 Feb 2016 16:03:03 +0100 > > Subject: [PATCH] ftrace: Allow to explicitly disable the build of the dynamic > > ftrace with regs > > > > This patch allows to explicitly disable > > CONFIG_DYNAMIC_FTRACE_WITH_REGS. We will need to do so on > > PPC with a broken gcc. This situation will be detected at > > buildtime and could not be handled by Kbuild automatically. > > Wait. Can it be detected at build time? That is, does it cause a build Yes, I wrote a test to detect it at build time. It is similar to "asm goto" and part of the v7 patch set. > error? If so, then you can have Kbuild automatically detect this and > set the proper value. We do this with 'asm goto'. There's tricks in the > build system that can change the configs based on if a compiler is > broken or not. Please clarify. All I could find is Makefile magic that does it. AFAICS This runs _after_ Kconfig. But what I'd like to see is to offer the user the full choice, where possible, e.g. Kernel Tracing ... 0) none 1) static FTRACE 2) DYNAMIC_FTRACE 3) DYNAMIC_FTRACE_WITH_REGS Can such a test be used to simply reduce these options? With Petr's patch, it comes quite close to the above, and if you select "3" and your compiler is broken, compilation will fail. For "2", it will just do the right thing ( fall back to plain "-pg" ). Without Petr's patch you have *no* choice between "2" and "3". (That's what I'd call a bug :) So, the question is, can such a test be used to provide _input_ to "make config" ? I can see the "env=" mechanism, but it seems not to be used very heavily. That would then be a prerequisite to all "make *config". Even if it can provide this input, you can still not choose between 2 and 3 where both are available. Torsten
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index a138f6d866ae..de6dab0f74f2 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"