Re: [PATCH] tracing: always define trace_{irq,preempt}_{enable_disable}

From: Joel Fernandes
Date: Thu Oct 19 2017 - 11:42:36 EST


Hi Arnd,

On Thu, Oct 19, 2017 at 1:32 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> We get a build error in the irqsoff tracer in some configurations:
>
> kernel/trace/trace_irqsoff.c: In function 'trace_preempt_on':
> kernel/trace/trace_irqsoff.c:855:2: error: implicit declaration of function 'trace_preempt_enable_rcuidle'; did you mean 'trace_irq_enable_rcuidle'? [-Werror=implicit-function-declaration]
> trace_preempt_enable_rcuidle(a0, a1);
>
> The problem is that trace_preempt_enable_rcuidle() has different
> definition based on multiple Kconfig symbols, but not all combinations
> have a valid definition.
>
> This changes the conditions so that we always get exactly one
> definition of each of the four tracing macros. I have not tried
> to verify that these definitions are sensible, but now we
> can build all randconfig combinations again.
>

Thanks for catching this. I didn't follow why it breaks for you,
especially I'm troubled by your proposal of defining the empty macro
for !defined(CONFIG_DEBUG_PREEMPT) in your patch. Could you provide
your config sample and architecture you're building for? I'm guessing
its ARM but let me know. I will try to build it and reproduce it.

thanks,
Joel