From: Johannes Berg <johannes@sipsolutions.net>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>,
linux1394-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: lockdep false positive? -- firewire-core transaction timer vs. scsi-core host lock
Date: Tue, 17 Aug 2010 00:09:10 +0200 [thread overview]
Message-ID: <1281996550.3683.43.camel@jlt3.sipsolutions.net> (raw)
In-Reply-To: <1281994939.1926.2075.camel@laptop>
On Mon, 2010-08-16 at 23:42 +0200, Peter Zijlstra wrote:
> Which means that it now worries the following can happen:
>
> softirq:
> spin_lock(&t->split_timeout_timer);
>
> IRQ:
> spin_lock(&(shost->host_lock)->rlock);
> spin_lock(&t->split_timeout_timer);
>
> Now, the thing is that split_timeout_timer is a fake lock used to
> annotate timers, its use is to connect lock chains from within the timer
> callback to del_timer_sync() callers, to detect deadlocks.
>
> Now, I can't seem to remember why del_timer_sync() explicitly disables
> IRQs but call_timer_fn() does not, Johill, happen to remember?
Err, sorry, no. I do remember that we had long discussions and initially
I had wanted to disable the context checking for these fake locks
completely. I think it was just the minimal thing needed not to make it
warn always. Also, we can't do the same thing in call_timer_fn() since
we need to hold it across fn()? Wouldn't it complain if we held that
lock then while enabling IRQs again? Not sure.
I don't fully understand the scenario above yet though. Why does it
think we could ever take the fake lock in an IRQ to start with? That
must not happen. Or is that just preemptive worrying?
johannes
next prev parent reply other threads:[~2010-08-16 22:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-16 18:42 lockdep false positive? -- firewire-core transaction timer vs. scsi-core host lock Stefan Richter
2010-08-16 21:42 ` Peter Zijlstra
2010-08-16 22:09 ` Johannes Berg [this message]
2010-08-16 22:27 ` Johannes Berg
2010-08-17 16:22 ` Stefan Richter
2010-08-18 13:17 ` Stefan Richter
2010-08-17 14:35 ` Yong Zhang
2010-08-17 16:23 ` Stefan Richter
2010-08-18 7:01 ` Clemens Ladisch
2010-08-18 8:09 ` Stefan Richter
2010-08-18 8:53 ` Clemens Ladisch
2010-08-18 9:08 ` Yong Zhang
2010-08-18 8:59 ` Peter Zijlstra
2010-08-18 9:26 ` Clemens Ladisch
2010-08-18 9:43 ` Peter Zijlstra
2010-08-18 12:50 ` Stefan Richter
2010-08-18 13:05 ` Clemens Ladisch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1281996550.3683.43.camel@jlt3.sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=peterz@infradead.org \
--cc=stefanr@s5r6.in-berlin.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox