From: Byungchul Park <byungchul.park@lge.com>
To: Joel Fernandes <joel@joelfernandes.org>
Cc: Theodore Ts'o <tytso@mit.edu>,
damien.lemoal@opensource.wdc.com, linux-ide@vger.kernel.org,
adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org,
torvalds@linux-foundation.org, mingo@redhat.com,
linux-kernel@vger.kernel.org, peterz@infradead.org,
will@kernel.org, tglx@linutronix.de, rostedt@goodmis.org,
sashal@kernel.org, daniel.vetter@ffwll.ch,
chris@chris-wilson.co.uk, duyuyang@gmail.com,
johannes.berg@intel.com, tj@kernel.org, willy@infradead.org,
david@fromorbit.com, amir73il@gmail.com, bfields@fieldses.org,
gregkh@linuxfoundation.org, kernel-team@lge.com,
linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@kernel.org,
minchan@kernel.org, hannes@cmpxchg.org, vdavydov.dev@gmail.com,
sj@kernel.org, jglisse@redhat.com, dennis@kernel.org,
cl@linux.com, penberg@kernel.org, rientjes@google.com,
vbabka@suse.cz, ngupta@vflare.org, linux-block@vger.kernel.org,
paolo.valente@linaro.org, josef@toxicpanda.com,
linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk,
jack@suse.cz, jack@suse.com, jlayton@kernel.org,
dan.j.williams@intel.com, hch@infradead.org, djwong@kernel.org,
dri-devel@lists.freedesktop.org, airlied@linux.ie,
rodrigosiqueiramelo@gmail.com, melissa.srw@gmail.com,
hamohammed.sa@gmail.com, paulmck@kernel.org
Subject: Re: Report 2 in ext4 and journal based on v5.17-rc1
Date: Mon, 7 Mar 2022 11:43:25 +0900 [thread overview]
Message-ID: <20220307024325.GA6323@X58A-UD3R> (raw)
In-Reply-To: <YiN8M4FwAeW/UAoN@google.com>
On Sat, Mar 05, 2022 at 03:05:23PM +0000, Joel Fernandes wrote:
> On Sat, Mar 05, 2022 at 11:15:38PM +0900, Byungchul Park wrote:
> > Almost all you've been blaming at Dept are totally non-sense. Based on
> > what you're saying, I'm conviced that you don't understand how Dept
> > works even 1%. You don't even try to understand it before blame.
> >
> > You don't have to understand and support it. But I can't response to you
> > if you keep saying silly things that way.
>
> Byungchul, other than ext4 have there been any DEPT reports that other
> subsystem maintainers' agree were valid usecases?
Not yet.
> Regarding false-positives, just to note lockdep is not without its share of
> false-positives. Just that (as you know), the signal-to-noise ratio should be
> high for it to be useful. I've put up with lockdep's false positives just
> because it occasionally saves me from catastrophe.
I love your insight. Agree. A tool would be useful only when it's
*actually* helpful. I hope Dept would be so.
> > > In any case, if DEPT is going to report these "circular dependencies
> > > as bugs that MUST be fixed", it's going to be pure noise and I will
> > > ignore all DEPT reports, and will push back on having Lockdep replaced
> >
> > Dept is going to be improved so that what you are concerning about won't
> > be reported.
>
> Yeah I am looking forward to learning more about it however I was wondering
> about the following: lockdep can already be used for modeling "resource
> acquire/release" and "resource wait" semantics that are unrelated to locks,
> like we do in mm reclaim. I am wondering why we cannot just use those existing
> lockdep mechanisms for the wait/wake usecases (Assuming that we can agree
1. Lockdep can't work with general waits/events happening across
contexts basically. To get over this, manual tagging of
acquire/release can be used at each section that we suspect. But
unfortunately, we cannot use the method if we cannot simply identify
the sections. Furthermore, it's inevitable to miss sections that
shouldn't get missed.
2. Some cases should be correctly tracked via wait/event model, not
acquisition order model. For example, read-lock in rwlock should be
defined as a waiter waiting for write-unlock, write-lock in rwlock
as a waiter waiting for either read-unlock or write-unlock.
Otherwise, if we try to track those cases using acquisition order,
it cannot completely work. Don't you think it looks werid?
3. Tracking what we didn't track before means both stronger detection
and new emergence of false positives, exactly same as Lockdep at its
beginning when it started to track what we hadn't tracked before.
Even though the emergence was allowed at that time, now that Locdkep
got stable enough, folks would be more strict on new emergences. It's
gonna get even worse if valid reports are getting prevented by false
positives.
For that reason, multi reporting functionality is essential. I was
thinking to improve Lockdep to allow multi reporting. But it might be
needed to change more than developing a new tool from scratch. Plus
it might be even more difficult cuz Lockdep already works not badly.
So even for Lockdep, I thought the new thing should be developed
independently leaving Lockdep as it is.
4. (minor reason) The concept and name of acquisition and release is not
for general wait/event. The design and implementation are not,
either. I wanted to address the issue as soon as possible before we
squeeze out Lockdep to use for general wait/event more and the kernel
code gets weird. Of course, it doesn't mean Dept is more stable than
Lockdep. However, I can tell Dept works what a dependency tool should
do and we need to make the code go right.
> that circular dependencies on related to wait/wake is a bad thing. Or perhaps
> there's a reason why Peter Zijlstra did not use lockdep for wait/wake
> dependencies (such as multiple wake sources) considering he wrote a lot of
> that code.
>
> Keep kicking ass brother, you're doing great.
Thank you! I'll go through this in a right way so as not to disappoint
you!
Thanks,
Byungchul
next prev parent reply other threads:[~2022-03-07 2:43 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-17 10:57 [PATCH 00/16] DEPT(Dependency Tracker) Byungchul Park
2022-02-17 10:57 ` [PATCH 01/16] llist: Move llist_{head,node} definition to types.h Byungchul Park
2022-02-17 10:57 ` [PATCH 02/16] dept: Implement Dept(Dependency Tracker) Byungchul Park
2022-02-17 15:54 ` Steven Rostedt
2022-02-17 17:36 ` Steven Rostedt
2022-02-18 6:09 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 03/16] dept: Embed Dept data in Lockdep Byungchul Park
2022-02-17 10:57 ` [PATCH 04/16] dept: Apply Dept to spinlock Byungchul Park
2022-02-17 10:57 ` [PATCH 05/16] dept: Apply Dept to mutex families Byungchul Park
2022-02-17 10:57 ` [PATCH 06/16] dept: Apply Dept to rwlock Byungchul Park
2022-02-17 10:57 ` [PATCH 07/16] dept: Apply Dept to wait_for_completion()/complete() Byungchul Park
2022-02-17 10:57 ` [PATCH 08/16] dept: Apply Dept to seqlock Byungchul Park
2022-02-17 10:57 ` [PATCH 09/16] dept: Apply Dept to rwsem Byungchul Park
2022-02-17 10:57 ` [PATCH 10/16] dept: Add proc knobs to show stats and dependency graph Byungchul Park
2022-02-17 15:55 ` Steven Rostedt
2022-02-17 10:57 ` [PATCH 11/16] dept: Introduce split map concept and new APIs for them Byungchul Park
2022-02-17 10:57 ` [PATCH 12/16] dept: Apply Dept to wait/event of PG_{locked,writeback} Byungchul Park
2022-02-17 10:57 ` [PATCH 13/16] dept: Apply SDT to swait Byungchul Park
2022-02-17 10:57 ` [PATCH 14/16] dept: Apply SDT to wait(waitqueue) Byungchul Park
2022-02-17 10:57 ` [PATCH 15/16] locking/lockdep, cpu/hotplus: Use a weaker annotation in AP thread Byungchul Park
2022-02-17 10:57 ` [PATCH 16/16] dept: Distinguish each syscall context from another Byungchul Park
2022-02-17 11:10 ` Report 1 in ext4 and journal based on v5.17-rc1 Byungchul Park
2022-02-17 11:10 ` Report 2 " Byungchul Park
2022-02-21 19:02 ` Jan Kara
2022-02-23 0:35 ` Byungchul Park
2022-02-23 14:48 ` Jan Kara
2022-02-24 1:11 ` Byungchul Park
2022-02-24 10:22 ` Jan Kara
2022-02-28 9:28 ` Byungchul Park
2022-02-28 10:14 ` Jan Kara
2022-02-28 21:25 ` Theodore Ts'o
2022-03-03 1:36 ` Byungchul Park
2022-03-03 1:00 ` Byungchul Park
2022-03-03 2:32 ` Theodore Ts'o
2022-03-03 5:23 ` Byungchul Park
2022-03-03 14:36 ` Theodore Ts'o
2022-03-04 0:42 ` Byungchul Park
2022-03-05 3:26 ` Theodore Ts'o
2022-03-05 14:15 ` Byungchul Park
2022-03-05 15:05 ` Joel Fernandes
2022-03-07 2:43 ` Byungchul Park [this message]
2022-03-04 3:20 ` Byungchul Park
2022-03-05 3:40 ` Theodore Ts'o
2022-03-05 14:55 ` Byungchul Park
2022-03-05 15:12 ` Reimar Döffinger
2022-03-06 3:30 ` Theodore Ts'o
2022-03-06 10:51 ` Byungchul Park
2022-03-06 14:19 ` Theodore Ts'o
2022-03-10 1:45 ` Byungchul Park
2022-03-03 9:54 ` Jan Kara
2022-03-04 1:56 ` Byungchul Park
2022-02-17 13:27 ` Report 1 " Matthew Wilcox
2022-02-18 0:41 ` Byungchul Park
2022-02-22 8:27 ` Jan Kara
2022-02-23 1:40 ` Byungchul Park
2022-02-23 3:30 ` Byungchul Park
2022-02-17 15:51 ` [PATCH 00/16] DEPT(Dependency Tracker) Theodore Ts'o
2022-02-17 17:00 ` Steven Rostedt
2022-02-17 17:06 ` Matthew Wilcox
2022-02-19 10:05 ` Byungchul Park
2022-02-18 4:19 ` Theodore Ts'o
2022-02-19 10:34 ` Byungchul Park
2022-02-19 10:18 ` Byungchul Park
2022-02-19 9:54 ` 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=20220307024325.GA6323@X58A-UD3R \
--to=byungchul.park@lge.com \
--cc=adilger.kernel@dilger.ca \
--cc=airlied@linux.ie \
--cc=akpm@linux-foundation.org \
--cc=amir73il@gmail.com \
--cc=bfields@fieldses.org \
--cc=chris@chris-wilson.co.uk \
--cc=cl@linux.com \
--cc=damien.lemoal@opensource.wdc.com \
--cc=dan.j.williams@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=david@fromorbit.com \
--cc=dennis@kernel.org \
--cc=djwong@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=duyuyang@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hamohammed.sa@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hch@infradead.org \
--cc=jack@suse.com \
--cc=jack@suse.cz \
--cc=jglisse@redhat.com \
--cc=jlayton@kernel.org \
--cc=joel@joelfernandes.org \
--cc=johannes.berg@intel.com \
--cc=josef@toxicpanda.com \
--cc=kernel-team@lge.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=melissa.srw@gmail.com \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=ngupta@vflare.org \
--cc=paolo.valente@linaro.org \
--cc=paulmck@kernel.org \
--cc=penberg@kernel.org \
--cc=peterz@infradead.org \
--cc=rientjes@google.com \
--cc=rodrigosiqueiramelo@gmail.com \
--cc=rostedt@goodmis.org \
--cc=sashal@kernel.org \
--cc=sj@kernel.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=vbabka@suse.cz \
--cc=vdavydov.dev@gmail.com \
--cc=viro@zeniv.linux.org.uk \
--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;
as well as URLs for NNTP newsgroup(s).