2010-04-27 19:25:54

by John Kacur

[permalink] [raw]
Subject: [PATCH:resend] rt: Remove CONFIG_STACK_TRACER from DEBUG_COUNT, and fix reminder block

This fix does two things.

1. It reverts commit 3e39399ef4a742d994570488994be93ef17d4ef5.
- The above commit added back a warning about CONFIG_STACK_TRACER
NOT because the warning was necessary but to fix-up a problem where you could
get an empty REMINDER block in the demg.

However, CONFIG_STACK_TRACER really should not be in the reminder block.
Even when configured-in it is not enabled, and thus has neglible impact.

2. It removes CONFIG_STACK_TRACER from DEBUG_COUNT which is the proper fix
for the empty REMINDER block problem.

This patch is for rt only. (this code doesn't exist in mainline)

Signed-off-by: John Kacur <[email protected]>
Acked-by: Steven Rostedt <[email protected]>
---
init/main.c | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/init/main.c b/init/main.c
index 592c16a..f26cb63 100644
--- a/init/main.c
+++ b/init/main.c
@@ -908,7 +908,7 @@ static int __init kernel_init(void * unused)
WARN_ON(irqs_disabled());
#endif

-#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_STACK_TRACER) + defined(CONFIG_INTERRUPT_OFF_HIST) + defined(CONFIG_PREEMPT_OFF_HIST) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))
+#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_INTERRUPT_OFF_HIST) + defined(CONFIG_PREEMPT_OFF_HIST) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))

#if DEBUG_COUNT > 0
printk(KERN_ERR "*****************************************************************************\n");
@@ -928,9 +928,6 @@ static int __init kernel_init(void * unused)
#ifdef CONFIG_PREEMPT_TRACER
printk(KERN_ERR "* CONFIG_PREEMPT_TRACER *\n");
#endif
-#ifdef CONFIG_STACK_TRACER
- printk(KERN_ERR "* CONFIG_STACK_TRACER *\n");
-#endif
#if defined(CONFIG_FTRACE) && !defined(CONFIG_FTRACE_MCOUNT_RECORD)
printk(KERN_ERR "* CONFIG_FTRACE *\n");
#endif
--
1.6.6.1


2010-04-27 19:34:57

by Clark Williams

[permalink] [raw]
Subject: Re: [PATCH:resend] rt: Remove CONFIG_STACK_TRACER from DEBUG_COUNT, and fix reminder block

On Tue, 27 Apr 2010 21:25:42 +0200
John Kacur <[email protected]> wrote:

> This fix does two things.
>
> 1. It reverts commit 3e39399ef4a742d994570488994be93ef17d4ef5.
> - The above commit added back a warning about CONFIG_STACK_TRACER
> NOT because the warning was necessary but to fix-up a problem where you could
> get an empty REMINDER block in the demg.
>
> However, CONFIG_STACK_TRACER really should not be in the reminder block.
> Even when configured-in it is not enabled, and thus has neglible impact.
>
> 2. It removes CONFIG_STACK_TRACER from DEBUG_COUNT which is the proper fix
> for the empty REMINDER block problem.
>
> This patch is for rt only. (this code doesn't exist in mainline)
>
> Signed-off-by: John Kacur <[email protected]>
> Acked-by: Steven Rostedt <[email protected]>
> ---
> init/main.c | 5 +----
> 1 files changed, 1 insertions(+), 4 deletions(-)
>
> diff --git a/init/main.c b/init/main.c
> index 592c16a..f26cb63 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -908,7 +908,7 @@ static int __init kernel_init(void * unused)
> WARN_ON(irqs_disabled());
> #endif
>
> -#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_STACK_TRACER) + defined(CONFIG_INTERRUPT_OFF_HIST) + defined(CONFIG_PREEMPT_OFF_HIST) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))
> +#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_INTERRUPT_OFF_HIST) + defined(CONFIG_PREEMPT_OFF_HIST) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))
>
> #if DEBUG_COUNT > 0
> printk(KERN_ERR "*****************************************************************************\n");
> @@ -928,9 +928,6 @@ static int __init kernel_init(void * unused)
> #ifdef CONFIG_PREEMPT_TRACER
> printk(KERN_ERR "* CONFIG_PREEMPT_TRACER *\n");
> #endif
> -#ifdef CONFIG_STACK_TRACER
> - printk(KERN_ERR "* CONFIG_STACK_TRACER *\n");
> -#endif
> #if defined(CONFIG_FTRACE) && !defined(CONFIG_FTRACE_MCOUNT_RECORD)
> printk(KERN_ERR "* CONFIG_FTRACE *\n");
> #endif
> --
> 1.6.6.1
>

Acked-by: Clark Williams <[email protected]>


Attachments:
signature.asc (198.00 B)

2010-04-27 20:40:14

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH:resend] rt: Remove CONFIG_STACK_TRACER from DEBUG_COUNT, and fix reminder block

On Tue, 27 Apr 2010, John Kacur wrote:

> This fix does two things.

This changelog does suck in more than two ways.

> 1. It reverts commit 3e39399ef4a742d994570488994be93ef17d4ef5.
> - The above commit added back a warning about CONFIG_STACK_TRACER
> NOT because the warning was necessary but to fix-up a problem where you could
> get an empty REMINDER block in the demg.

The CONFIG_STACK_TRACER printk has been there before and got dropped
for whatever reason, but the DEBUG_COUNT accounting of
CONFIG_STACK_TRACER still remained.

So the conclusion that the printk needs to be added back is _NOT_
completely unreasonable.

> However, CONFIG_STACK_TRACER really should not be in the reminder block.
> Even when configured-in it is not enabled, and thus has neglible impact.

That argument is bogus as it applies to most of the tracing related
config options.

> 2. It removes CONFIG_STACK_TRACER from DEBUG_COUNT which is the proper fix
> for the empty REMINDER block problem.

It's the proper fix if the warning is not justified, which is not
clear at all. At least not from your changelog.

I do not mind the patch per se, but

1) the changelog should simply say:

rt: Remove CONFIG_STACK_TRACER from REMINDER block

Reason: It does not matter because ....

2) the patch should cover _all_ tracing options which have no
considerable latency impact when just compiled in and not default
enabled.

Thanks,

tglx

2010-04-28 19:22:09

by John Kacur

[permalink] [raw]
Subject: Re: [PATCH:resend] rt: Remove CONFIG_STACK_TRACER from DEBUG_COUNT, and fix reminder block

On Tue, Apr 27, 2010 at 10:39 PM, Thomas Gleixner <[email protected]> wrote:
> On Tue, 27 Apr 2010, John Kacur wrote:
>
>> This fix does two things.
>
> This changelog does suck in more than two ways.
>
>> 1. It reverts commit 3e39399ef4a742d994570488994be93ef17d4ef5.
>> - The above commit added back a warning about CONFIG_STACK_TRACER
>> NOT because the warning was necessary but to fix-up a problem where you could
>> get an empty REMINDER block in the demg.
>
> The CONFIG_STACK_TRACER printk has been there before and got dropped
> for whatever reason, but the DEBUG_COUNT accounting of
> CONFIG_STACK_TRACER still remained.
>
> So the conclusion that the printk needs to be added back is _NOT_
> completely unreasonable.
>
>> However, CONFIG_STACK_TRACER really should not be in the reminder block.
>> Even when configured-in it is not enabled, and thus has neglible impact.
>
> That argument is bogus as it applies to most of the tracing related
> config options.

Not quite. Some of the tracing options are believed to have an impact
even when not enabled.
In particular irqsoff and preemptoff still call a function. Not sure
how minimal the impact is, but
it isn't zero.

>
>> 2. It removes CONFIG_STACK_TRACER from DEBUG_COUNT which is the proper fix
>> for the empty REMINDER block problem.
>
> It's the proper fix if the warning is not justified, which is not
> clear at all. At least not from your changelog.
>
> I do not mind the patch per se, but
>
> 1) the changelog should simply say:
>
> ? rt: Remove CONFIG_STACK_TRACER from REMINDER block
>
> ? Reason: It does not matter because ....
>
> 2) the patch should cover _all_ tracing options which have no
> ? considerable latency impact when just compiled in and not default
> ? enabled.
>

Okay, you make some good points, although I'm having a hard time
finding other CONFIGS to safely cut.
Respinning the patch. Thanks for your reply.