From: Joel Fernandes <joel@joelfernandes.org>
To: Byungchul Park <byungchul.park@lge.com>
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: Sat, 5 Mar 2022 15:05:23 +0000 [thread overview]
Message-ID: <YiN8M4FwAeW/UAoN@google.com> (raw)
In-Reply-To: <20220305141538.GA31268@X58A-UD3R>
On Sat, Mar 05, 2022 at 11:15:38PM +0900, Byungchul Park wrote:
> On Fri, Mar 04, 2022 at 10:26:23PM -0500, Theodore Ts'o wrote:
> > On Fri, Mar 04, 2022 at 09:42:37AM +0900, Byungchul Park wrote:
> > >
> > > All contexts waiting for any of the events in the circular dependency
> > > chain will be definitely stuck if there is a circular dependency as I
> > > explained. So we need another wakeup source to break the circle. In
> > > ext4 code, you might have the wakeup source for breaking the circle.
> > >
> > > What I agreed with is:
> > >
> > > The case that 1) the circular dependency is unevitable 2) there are
> > > another wakeup source for breadking the circle and 3) the duration
> > > in sleep is short enough, should be acceptable.
> > >
> > > Sounds good?
> >
> > These dependencies are part of every single ext4 metadata update,
> > and if there were any unnecessary sleeps, this would be a major
> > performance gap, and this is a very well studied part of ext4.
> >
> > There are some places where we sleep, sure. In some case
> > start_this_handle() needs to wait for a commit to complete, and the
> > commit thread might need to sleep for I/O to complete. But the moment
> > the thing that we're waiting for is complete, we wake up all of the
> > processes on the wait queue. But in the case where we wait for I/O
> > complete, that wakeupis coming from the device driver, when it
> > receives the the I/O completion interrupt from the hard drive. Is
> > that considered an "external source"? Maybe DEPT doesn't recognize
> > that this is certain to happen just as day follows the night? (Well,
> > maybe the I/O completion interrupt might not happen if the disk drive
> > bursts into flames --- but then, you've got bigger problems. :-)
>
> 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?
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.
> > 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
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.
Thanks,
Joel
WARNING: multiple messages have this Message-ID (diff)
From: Joel Fernandes <joel@joelfernandes.org>
To: Byungchul Park <byungchul.park@lge.com>
Cc: hamohammed.sa@gmail.com, jack@suse.cz, peterz@infradead.org,
daniel.vetter@ffwll.ch, amir73il@gmail.com, david@fromorbit.com,
dri-devel@lists.freedesktop.org, chris@chris-wilson.co.uk,
bfields@fieldses.org, linux-ide@vger.kernel.org,
adilger.kernel@dilger.ca, cl@linux.com, will@kernel.org,
duyuyang@gmail.com, sashal@kernel.org, paolo.valente@linaro.org,
paulmck@kernel.org, damien.lemoal@opensource.wdc.com,
willy@infradead.org, hch@infradead.org, airlied@linux.ie,
mingo@redhat.com, djwong@kernel.org, vdavydov.dev@gmail.com,
rientjes@google.com, dennis@kernel.org,
linux-ext4@vger.kernel.org, linux-mm@kvack.org,
ngupta@vflare.org, johannes.berg@intel.com, jack@suse.com,
dan.j.williams@intel.com, josef@toxicpanda.com,
rostedt@goodmis.org, linux-block@vger.kernel.org,
linux-fsdevel@vger.kernel.org, jglisse@redhat.com,
viro@zeniv.linux.org.uk, tglx@linutronix.de, mhocko@kernel.org,
vbabka@suse.cz, melissa.srw@gmail.com, sj@kernel.org,
Theodore Ts'o <tytso@mit.edu>,
rodrigosiqueiramelo@gmail.com, kernel-team@lge.com,
gregkh@linuxfoundation.org, jlayton@kernel.org,
linux-kernel@vger.kernel.org, penberg@kernel.org,
minchan@kernel.org, hannes@cmpxchg.org, tj@kernel.org,
akpm@linux-foundation.org, torvalds@linux-foundation.org
Subject: Re: Report 2 in ext4 and journal based on v5.17-rc1
Date: Sat, 5 Mar 2022 15:05:23 +0000 [thread overview]
Message-ID: <YiN8M4FwAeW/UAoN@google.com> (raw)
In-Reply-To: <20220305141538.GA31268@X58A-UD3R>
On Sat, Mar 05, 2022 at 11:15:38PM +0900, Byungchul Park wrote:
> On Fri, Mar 04, 2022 at 10:26:23PM -0500, Theodore Ts'o wrote:
> > On Fri, Mar 04, 2022 at 09:42:37AM +0900, Byungchul Park wrote:
> > >
> > > All contexts waiting for any of the events in the circular dependency
> > > chain will be definitely stuck if there is a circular dependency as I
> > > explained. So we need another wakeup source to break the circle. In
> > > ext4 code, you might have the wakeup source for breaking the circle.
> > >
> > > What I agreed with is:
> > >
> > > The case that 1) the circular dependency is unevitable 2) there are
> > > another wakeup source for breadking the circle and 3) the duration
> > > in sleep is short enough, should be acceptable.
> > >
> > > Sounds good?
> >
> > These dependencies are part of every single ext4 metadata update,
> > and if there were any unnecessary sleeps, this would be a major
> > performance gap, and this is a very well studied part of ext4.
> >
> > There are some places where we sleep, sure. In some case
> > start_this_handle() needs to wait for a commit to complete, and the
> > commit thread might need to sleep for I/O to complete. But the moment
> > the thing that we're waiting for is complete, we wake up all of the
> > processes on the wait queue. But in the case where we wait for I/O
> > complete, that wakeupis coming from the device driver, when it
> > receives the the I/O completion interrupt from the hard drive. Is
> > that considered an "external source"? Maybe DEPT doesn't recognize
> > that this is certain to happen just as day follows the night? (Well,
> > maybe the I/O completion interrupt might not happen if the disk drive
> > bursts into flames --- but then, you've got bigger problems. :-)
>
> 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?
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.
> > 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
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.
Thanks,
Joel
next prev parent reply other threads:[~2022-03-05 15:05 UTC|newest]
Thread overview: 134+ 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 ` 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 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 02/16] dept: Implement Dept(Dependency Tracker) Byungchul Park
2022-02-17 10:57 ` Byungchul Park
2022-02-17 15:54 ` Steven Rostedt
2022-02-17 15:54 ` Steven Rostedt
2022-02-17 17:36 ` Steven Rostedt
2022-02-17 17:36 ` Steven Rostedt
2022-02-18 6:09 ` Byungchul Park
2022-02-18 6:09 ` Byungchul Park
2022-02-17 19:46 ` kernel test robot
2022-02-17 19:46 ` kernel test robot
2022-02-17 19:46 ` kernel test robot
2022-02-17 19:46 ` kernel test robot
2022-02-17 10:57 ` [PATCH 03/16] dept: Embed Dept data in Lockdep Byungchul Park
2022-02-17 10:57 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 04/16] dept: Apply Dept to spinlock Byungchul Park
2022-02-17 10:57 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 05/16] dept: Apply Dept to mutex families Byungchul Park
2022-02-17 10:57 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 06/16] dept: Apply Dept to rwlock Byungchul Park
2022-02-17 10:57 ` 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 ` Byungchul Park
2022-02-17 19:46 ` kernel test robot
2022-02-17 19:46 ` kernel test robot
2022-02-17 10:57 ` [PATCH 08/16] dept: Apply Dept to seqlock Byungchul Park
2022-02-17 10:57 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 09/16] dept: Apply Dept to rwsem Byungchul Park
2022-02-17 10:57 ` 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 10:57 ` Byungchul Park
2022-02-17 15:55 ` Steven Rostedt
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 ` 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 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 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 14/16] dept: Apply SDT to wait(waitqueue) Byungchul Park
2022-02-17 10:57 ` 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 ` Byungchul Park
2022-02-17 10:57 ` [PATCH 16/16] dept: Distinguish each syscall context from another Byungchul Park
2022-02-17 10:57 ` 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 ` Byungchul Park
2022-02-17 11:10 ` Report 2 " Byungchul Park
2022-02-17 11:10 ` Byungchul Park
2022-02-21 19:02 ` Jan Kara
2022-02-21 19:02 ` Jan Kara
2022-02-23 0:35 ` Byungchul Park
2022-02-23 0:35 ` Byungchul Park
2022-02-23 14:48 ` Jan Kara
2022-02-23 14:48 ` Jan Kara
2022-02-24 1:11 ` Byungchul Park
2022-02-24 1:11 ` Byungchul Park
2022-02-24 10:22 ` Jan Kara
2022-02-24 10:22 ` Jan Kara
2022-02-28 9:28 ` Byungchul Park
2022-02-28 9:28 ` Byungchul Park
2022-02-28 10:14 ` Jan Kara
2022-02-28 10:14 ` Jan Kara
2022-02-28 21:25 ` Theodore Ts'o
2022-02-28 21:25 ` Theodore Ts'o
2022-03-03 1:36 ` Byungchul Park
2022-03-03 1:36 ` Byungchul Park
2022-03-03 1:00 ` Byungchul Park
2022-03-03 1:00 ` Byungchul Park
2022-03-03 2:32 ` Theodore Ts'o
2022-03-03 2:32 ` Theodore Ts'o
2022-03-03 5:23 ` Byungchul Park
2022-03-03 5:23 ` Byungchul Park
2022-03-03 14:36 ` Theodore Ts'o
2022-03-03 14:36 ` Theodore Ts'o
2022-03-04 0:42 ` Byungchul Park
2022-03-04 0:42 ` Byungchul Park
2022-03-05 3:26 ` Theodore Ts'o
2022-03-05 3:26 ` Theodore Ts'o
2022-03-05 14:15 ` Byungchul Park
2022-03-05 14:15 ` Byungchul Park
2022-03-05 15:05 ` Joel Fernandes [this message]
2022-03-05 15:05 ` Joel Fernandes
2022-03-07 2:43 ` Byungchul Park
2022-03-07 2:43 ` Byungchul Park
2022-03-04 3:20 ` Byungchul Park
2022-03-04 3:20 ` Byungchul Park
2022-03-05 3:40 ` Theodore Ts'o
2022-03-05 3:40 ` Theodore Ts'o
2022-03-05 14:55 ` Byungchul Park
2022-03-05 14:55 ` Byungchul Park
2022-03-05 15:12 ` Reimar Döffinger
2022-03-05 15:12 ` Reimar Döffinger
2022-03-06 3:30 ` Theodore Ts'o
2022-03-06 3:30 ` Theodore Ts'o
2022-03-06 10:51 ` Byungchul Park
2022-03-06 10:51 ` Byungchul Park
2022-03-06 14:19 ` Theodore Ts'o
2022-03-06 14:19 ` Theodore Ts'o
2022-03-10 1:45 ` Byungchul Park
2022-03-10 1:45 ` Byungchul Park
2022-03-03 9:54 ` Jan Kara
2022-03-03 9:54 ` Jan Kara
2022-03-04 1:56 ` Byungchul Park
2022-03-04 1:56 ` Byungchul Park
2022-02-17 13:27 ` Report 1 " Matthew Wilcox
2022-02-17 13:27 ` Matthew Wilcox
2022-02-18 0:41 ` Byungchul Park
2022-02-18 0:41 ` Byungchul Park
2022-02-22 8:27 ` Jan Kara
2022-02-22 8:27 ` Jan Kara
2022-02-23 1:40 ` Byungchul Park
2022-02-23 1:40 ` Byungchul Park
2022-02-23 3:30 ` 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 15:51 ` Theodore Ts'o
2022-02-17 17:00 ` Steven Rostedt
2022-02-17 17:00 ` Steven Rostedt
2022-02-17 17:06 ` Matthew Wilcox
2022-02-17 17:06 ` Matthew Wilcox
2022-02-19 10:05 ` Byungchul Park
2022-02-19 10:05 ` Byungchul Park
2022-02-18 4:19 ` Theodore Ts'o
2022-02-18 4:19 ` Theodore Ts'o
2022-02-19 10:34 ` Byungchul Park
2022-02-19 10:34 ` Byungchul Park
2022-02-19 10:18 ` Byungchul Park
2022-02-19 10:18 ` Byungchul Park
2022-02-19 9:54 ` 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=YiN8M4FwAeW/UAoN@google.com \
--to=joel@joelfernandes.org \
--cc=adilger.kernel@dilger.ca \
--cc=airlied@linux.ie \
--cc=akpm@linux-foundation.org \
--cc=amir73il@gmail.com \
--cc=bfields@fieldses.org \
--cc=byungchul.park@lge.com \
--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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.