Re: lockdep warning: threadirqs and preemptoff tracer

From: Daniel Wagner
Date: Tue May 26 2015 - 09:10:09 EST


On 05/26/2015 02:32 PM, Steven Rostedt wrote:
> Daniel Wagner <daniel.wagner@xxxxxxxxxxxx> wrote:
>> On 05/20/2015 10:46 AM, Daniel Wagner wrote:
>> I starred for a while at the code and saw the comment in
>> __local_bh_disable_ip():
>>
>> /*
>> * The preempt tracer hooks into preempt_count_add and will break
>> * lockdep because it calls back into lockdep after SOFTIRQ_OFFSET
>> * is set and before current->softirq_enabled is cleared.
>> * We must manually increment preempt_count here and manually
>> * call the trace_preempt_off later.
>> */
>>
>> >From this I figured this might be the same problem just in the
>> enable path. The below patch made the lockdep warning disappear.
>> Though I am not sure what I breaking with this.
>
> Don't you want to modify __local_bh_enable_ip()?

__do_softirq() calls __local_bh_disable_ip() and __local_bh_enable() and
not __local_bh_enable_ip(). I have no clue why this is done this way.
Need to look into the history.
--
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/