Re: [PATCH v7 2/2] tracing: Add support for preempt and irq enable/disable events

From: Joel Fernandes
Date: Wed Oct 04 2017 - 12:31:53 EST


Hi Peter,

On Wed, Oct 4, 2017 at 9:04 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> On Fri, Sep 29, 2017 at 02:22:45PM -0700, Joel Fernandes wrote:
>> +++ b/kernel/trace/trace_irqsoff.c
>
>> EXPORT_SYMBOL(trace_hardirqs_on);
>> EXPORT_SYMBOL(trace_hardirqs_off);
>> EXPORT_SYMBOL(trace_hardirqs_on_caller);
>> EXPORT_SYMBOL(trace_hardirqs_off_caller);
>
> Steve, how does this compiler with lockdep enabled? Because:
>
> kernel/locking/lockdep.c:EXPORT_SYMBOL(trace_hardirqs_on_caller);
> kernel/locking/lockdep.c:EXPORT_SYMBOL(trace_hardirqs_on);
> kernel/locking/lockdep.c:EXPORT_SYMBOL(trace_hardirqs_off_caller);
> kernel/locking/lockdep.c:EXPORT_SYMBOL(trace_hardirqs_off);
>

These functions are defined in lockdep.c only with
CONFIG_PROVE_LOCKING, and in trace_irqsoff.c only for
!CONFIG_PROVE_LOCKING:
http://elixir.free-electrons.com/linux/latest/source/kernel/trace/trace_irqsoff.c#L463

I have tested these combinations and it compiles fine.

thanks,

- Joel