From: Byungchul Park <byungchul.park@lge.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@kernel.org>,
torvalds@linux-foundation.org, peterz@infradead.org,
mingo@redhat.com, will@kernel.org, linux-kernel@vger.kernel.org,
joel@joelfernandes.org, alexander.levin@microsoft.com,
daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk,
duyuyang@gmail.com, johannes.berg@intel.com, tj@kernel.org,
tytso@mit.edu, david@fromorbit.com, amir73il@gmail.com,
bfields@fieldses.org, gregkh@linuxfoundation.org,
kernel-team@lge.com
Subject: Re: [RFC] Are you good with Lockdep?
Date: Mon, 23 Nov 2020 22:15:53 +0900 [thread overview]
Message-ID: <20201123131553.GA21320@X58A-UD3R> (raw)
In-Reply-To: <20201116153729.GC29991@casper.infradead.org>
On Mon, Nov 16, 2020 at 03:37:29PM +0000, Matthew Wilcox wrote:
> > > Something I believe lockdep is missing is a way to annotate "This lock
> > > will be released by a softirq". If we had lockdep for lock_page(), this
> > > would be a great case to show off. The filesystem locks the page, then
> > > submits it to a device driver. On completion, the filesystem's bio
> > > completion handler will be called in softirq context and unlock the page.
> > >
> > > So if the filesystem has another lock which is acquired by the completion
> > > handler. we could get an ABBA deadlock that lockdep would be unable to see.
> > >
> > > There are other similar things; if you look at the remaining semaphore
> > > users in the kernel, you'll see the general pattern is that they're
> > > acquired in process context and then released in interrupt context.
> > > If we had a way to transfer ownership of the semaphore to a generic
> > > "interrupt context", they could become mutexes and lockdep could check
> > > that nothing else will cause a deadlock.
> >
> > Yes. Those are exactly what Cross-release feature solves. Those problems
> > can be achieved with Cross-release. But even with Cross-release, we
> > still cannot solve the problem of (1) readlock handling (2) and false
> > positives preventing further reporting.
>
> It's not just about lockdep for semaphores. Mutexes will spin if the
> current owner is still running, so to convert an interrupt-released
> semaphore to a mutex, we need a way to mark the mutex as being released
> by the new owner.
>
> I really don't think you want to report subsequent lockdep splats.
Don't you think it would be ok if the # of splats is not too many?
Or is it still a problem even if not?
We shouldn't do that if it clearly makes a big problem. Otherwise, it
should be because any deadlock detection tool cannot be enhanced to be
stonger which inevitably produces false positives until proper keys are
assigned to all classes in the kernel, unless multiple reports are
allowed.
Could you explain why? It would be appreciated.
Thanks,
Byungchul
next prev parent reply other threads:[~2020-11-23 13:18 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-11 5:05 [RFC] Are you good with Lockdep? Byungchul Park
2020-11-11 10:54 ` Ingo Molnar
2020-11-11 14:36 ` Steven Rostedt
2020-11-11 23:16 ` Thomas Gleixner
2020-11-12 8:10 ` Byungchul Park
2020-11-12 14:26 ` Steven Rostedt
2020-11-12 14:52 ` Matthew Wilcox
2020-11-16 8:57 ` Byungchul Park
2020-11-16 15:37 ` Matthew Wilcox
2020-11-18 1:45 ` Boqun Feng
2020-11-18 3:30 ` Matthew Wilcox
2020-11-23 13:15 ` Byungchul Park [this message]
2020-11-12 14:58 ` Byungchul Park
2020-11-16 9:05 ` Byungchul Park
2020-11-23 10:45 ` Byungchul Park
2020-11-12 10:32 ` Byungchul Park
2020-11-12 13:56 ` Daniel Vetter
2020-11-16 8:45 ` Byungchul Park
2020-11-12 6:15 ` Byungchul Park
2020-11-12 8:51 ` Byungchul Park
2020-11-12 9:46 ` Byungchul Park
2020-11-23 11:05 ` [RFC] Dept(Dependency Tracker) Implementation Byungchul Park
2020-11-23 11:36 ` [RFC 1/6] dept: Implement Dept(Dependency Tracker) Byungchul Park
2020-11-23 11:36 ` [RFC 2/6] dept: Apply Dept to spinlock Byungchul Park
2020-11-23 11:36 ` [RFC 3/6] dept: Apply Dept to mutex families Byungchul Park
2020-11-23 11:36 ` [RFC 4/6] dept: Apply Dept to rwlock Byungchul Park
2020-11-23 11:36 ` [RFC 5/6] dept: Apply Dept to wait_for_completion()/complete() Byungchul Park
2020-11-23 11:36 ` [RFC 6/6] dept: Assign custom dept_keys or disable to avoid false positives Byungchul Park
2020-11-23 12:29 ` [RFC] Dept(Dependency Tracker) Implementation Byungchul Park
2020-11-23 11:13 ` [RFC] Dept(Dependency Tracker) Report Example Byungchul Park
2020-11-23 12:14 ` Byungchul Park
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=20201123131553.GA21320@X58A-UD3R \
--to=byungchul.park@lge.com \
--cc=alexander.levin@microsoft.com \
--cc=amir73il@gmail.com \
--cc=bfields@fieldses.org \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.vetter@ffwll.ch \
--cc=david@fromorbit.com \
--cc=duyuyang@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=joel@joelfernandes.org \
--cc=johannes.berg@intel.com \
--cc=kernel-team@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=will@kernel.org \
--cc=willy@infradead.org \
/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