Re: 2.6.33 GP fault only when built with tracing

From: Randy Dunlap
Date: Fri Mar 19 2010 - 14:23:47 EST


On 03/18/10 17:59, Mathieu Desnoyers wrote:
> * Steven Rostedt (rostedt@xxxxxxxxxxx) wrote:
>> On Thu, 2010-03-18 at 16:26 -0700, Randy Dunlap wrote:
>>> I can build/boot 2.6.33 with CONFIG_TRACE/TRACING disabled successfully,
>>> but when I enable lots of tracing config options and then boot with
>>> ftrace=nop on the kernel command line, I see a GP fault when the parport &
>>> parport_pc modules are loading/initializing.
>>
>> Do you see it without adding the "ftrace=nop"? The only thing that
>> should do is expand the ring buffer on boot up.
>>
>>>
>>> It happens in drivers/parport/share.c::parport_register_device(), when that
>>> function calls try_module_get().
>>>
>>> If I comment out the trace_module_get() calls in include/linux/module.h,
>>> the kernel boots with no problems.
>>
>>
>> Interesting. Well, trace_module_get() is a TRACE_EVENT tracepoint. But
>> should be disabled here. It may be something to do with DEFINE_TRACE.
>>
>> (added Mathieu to Cc since he wrote that code)
>
> can you try replacing the "local_read(__module_ref_addr(module, cpu))" argument
> with "0" ?

Yes, that boots with no problems.

> Arguments with side-effects are not skipped by the jump over disabled
> instrumentation. This is why we should do that part within the probe declaration
> in the TRACE_EVENT macros.
>
> But if we find out that the problem really is this argument, then it should be
> fixed, because something would be wrong with it (just moving it to TRACE_EVENT
> is not a proper solution).
>
> Thanks,
>
> Mathieu


--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/