From: Byungchul Park <byungchul@sk.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: linux-kernel@vger.kernel.org, kernel_team@skhynix.com,
torvalds@linux-foundation.org, damien.lemoal@opensource.wdc.com,
linux-ide@vger.kernel.org, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, mingo@redhat.com,
peterz@infradead.org, will@kernel.org, tglx@linutronix.de,
rostedt@goodmis.org, joel@joelfernandes.org, sashal@kernel.org,
daniel.vetter@ffwll.ch, duyuyang@gmail.com,
johannes.berg@intel.com, tj@kernel.org, tytso@mit.edu,
david@fromorbit.com, amir73il@gmail.com,
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,
josef@toxicpanda.com, linux-fsdevel@vger.kernel.org,
viro@zeniv.linux.org.uk, jack@suse.cz, jlayton@kernel.org,
dan.j.williams@intel.com, hch@infradead.org, djwong@kernel.org,
dri-devel@lists.freedesktop.org, rodrigosiqueiramelo@gmail.com,
melissa.srw@gmail.com, hamohammed.sa@gmail.com,
42.hyeyoo@gmail.com, chris.p.wilson@intel.com,
gwan-gyeong.mun@intel.com, max.byungchul.park@gmail.com,
boqun.feng@gmail.com, longman@redhat.com, hdanton@sina.com,
her0gyugyu@gmail.com
Subject: Re: [RESEND PATCH v10 25/25] dept: Track the potential waits of PG_{locked,writeback}
Date: Mon, 21 Aug 2023 13:51:36 +0900 [thread overview]
Message-ID: <20230821045136.GB73328@system.software.com> (raw)
In-Reply-To: <ZOLnRSdH4Wcrl67L@casper.infradead.org>
On Mon, Aug 21, 2023 at 05:25:41AM +0100, Matthew Wilcox wrote:
> On Mon, Aug 21, 2023 at 12:46:37PM +0900, Byungchul Park wrote:
> > @@ -377,44 +421,88 @@ static __always_inline int Page##uname(struct page *page) \
> > #define SETPAGEFLAG(uname, lname, policy) \
> > static __always_inline \
> > void folio_set_##lname(struct folio *folio) \
> > -{ set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
> > +{ \
> > + set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); \
> > + dept_page_set_bit(&folio->page, PG_##lname); \
>
> The PG_locked and PG_writeback bits only actually exist in the folio;
> the ones in struct page are just legacy and never actually used.
> Perhaps we could make the APIs more folio-based and less page-based?
Yeah. I need to make it more folio-based. I will work on it. Thank you.
> > static __always_inline void SetPage##uname(struct page *page) \
> > -{ set_bit(PG_##lname, &policy(page, 1)->flags); }
> > +{ \
> > + set_bit(PG_##lname, &policy(page, 1)->flags); \
> > + dept_page_set_bit(page, PG_##lname); \
> > +}
>
> I don't think we ever call this for PG_writeback or PG_locked. If
> I'm wrong, we can probably fix that ;-)
Okay then, I will assume this will never be used. So are you asking me
to get rid of this part, right?
> > static __always_inline void __SetPage##uname(struct page *page) \
> > -{ __set_bit(PG_##lname, &policy(page, 1)->flags); }
> > +{ \
> > + __set_bit(PG_##lname, &policy(page, 1)->flags); \
> > + dept_page_set_bit(page, PG_##lname); \
> > +}
>
> Umm. We do call __SetPageLocked() though ... I'll fix those up to
> be __set_folio_locked().
Haha Okay. Lemme know when you get done on it. Thanks.
Byungchul
WARNING: multiple messages have this Message-ID (diff)
From: Byungchul Park <byungchul@sk.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: hamohammed.sa@gmail.com, hdanton@sina.com, jack@suse.cz,
peterz@infradead.org, daniel.vetter@ffwll.ch, amir73il@gmail.com,
david@fromorbit.com, dri-devel@lists.freedesktop.org,
mhocko@kernel.org, linux-mm@kvack.org, linux-ide@vger.kernel.org,
adilger.kernel@dilger.ca, joel@joelfernandes.org,
42.hyeyoo@gmail.com, cl@linux.com, will@kernel.org,
duyuyang@gmail.com, sashal@kernel.org, her0gyugyu@gmail.com,
kernel_team@skhynix.com, damien.lemoal@opensource.wdc.com,
chris.p.wilson@intel.com, hch@infradead.org, mingo@redhat.com,
djwong@kernel.org, vdavydov.dev@gmail.com, rientjes@google.com,
dennis@kernel.org, linux-ext4@vger.kernel.org, ngupta@vflare.org,
johannes.berg@intel.com, boqun.feng@gmail.com,
dan.j.williams@intel.com, josef@toxicpanda.com,
rostedt@goodmis.org, gwan-gyeong.mun@intel.com,
linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org,
jglisse@redhat.com, viro@zeniv.linux.org.uk, longman@redhat.com,
tglx@linutronix.de, vbabka@suse.cz, melissa.srw@gmail.com,
sj@kernel.org, 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,
max.byungchul.park@gmail.com, hannes@cmpxchg.org, tj@kernel.org,
akpm@linux-foundation.org, torvalds@linux-foundation.org
Subject: Re: [RESEND PATCH v10 25/25] dept: Track the potential waits of PG_{locked,writeback}
Date: Mon, 21 Aug 2023 13:51:36 +0900 [thread overview]
Message-ID: <20230821045136.GB73328@system.software.com> (raw)
In-Reply-To: <ZOLnRSdH4Wcrl67L@casper.infradead.org>
On Mon, Aug 21, 2023 at 05:25:41AM +0100, Matthew Wilcox wrote:
> On Mon, Aug 21, 2023 at 12:46:37PM +0900, Byungchul Park wrote:
> > @@ -377,44 +421,88 @@ static __always_inline int Page##uname(struct page *page) \
> > #define SETPAGEFLAG(uname, lname, policy) \
> > static __always_inline \
> > void folio_set_##lname(struct folio *folio) \
> > -{ set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); } \
> > +{ \
> > + set_bit(PG_##lname, folio_flags(folio, FOLIO_##policy)); \
> > + dept_page_set_bit(&folio->page, PG_##lname); \
>
> The PG_locked and PG_writeback bits only actually exist in the folio;
> the ones in struct page are just legacy and never actually used.
> Perhaps we could make the APIs more folio-based and less page-based?
Yeah. I need to make it more folio-based. I will work on it. Thank you.
> > static __always_inline void SetPage##uname(struct page *page) \
> > -{ set_bit(PG_##lname, &policy(page, 1)->flags); }
> > +{ \
> > + set_bit(PG_##lname, &policy(page, 1)->flags); \
> > + dept_page_set_bit(page, PG_##lname); \
> > +}
>
> I don't think we ever call this for PG_writeback or PG_locked. If
> I'm wrong, we can probably fix that ;-)
Okay then, I will assume this will never be used. So are you asking me
to get rid of this part, right?
> > static __always_inline void __SetPage##uname(struct page *page) \
> > -{ __set_bit(PG_##lname, &policy(page, 1)->flags); }
> > +{ \
> > + __set_bit(PG_##lname, &policy(page, 1)->flags); \
> > + dept_page_set_bit(page, PG_##lname); \
> > +}
>
> Umm. We do call __SetPageLocked() though ... I'll fix those up to
> be __set_folio_locked().
Haha Okay. Lemme know when you get done on it. Thanks.
Byungchul
next prev parent reply other threads:[~2023-08-21 4:54 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-21 3:46 [RESEND PATCH v10 00/25] DEPT(Dependency Tracker) Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 01/25] llist: Move llist_{head,node} definition to types.h Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 01/25] llist: Move llist_{head, node} " Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 02/25] dept: Implement Dept(Dependency Tracker) Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 03/25] dept: Add single event dependency tracker APIs Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 04/25] dept: Add lock " Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 05/25] dept: Tie to Lockdep and IRQ tracing Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 06/25] dept: Add proc knobs to show stats and dependency graph Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 07/25] dept: Apply sdt_might_sleep_{start,end}() to wait_for_completion()/complete() Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 07/25] dept: Apply sdt_might_sleep_{start, end}() " Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 08/25] dept: Apply sdt_might_sleep_{start,end}() to PG_{locked,writeback} wait Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 08/25] dept: Apply sdt_might_sleep_{start, end}() to PG_{locked, writeback} wait Byungchul Park
2023-08-21 4:09 ` [RESEND PATCH v10 08/25] dept: Apply sdt_might_sleep_{start,end}() to PG_{locked,writeback} wait Matthew Wilcox
2023-08-21 4:09 ` Matthew Wilcox
2023-08-21 4:37 ` Byungchul Park
2023-08-21 4:37 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 09/25] dept: Apply sdt_might_sleep_{start,end}() to swait Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 09/25] dept: Apply sdt_might_sleep_{start, end}() " Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 10/25] dept: Apply sdt_might_sleep_{start,end}() to waitqueue wait Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 10/25] dept: Apply sdt_might_sleep_{start, end}() " Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 11/25] dept: Apply sdt_might_sleep_{start,end}() to hashed-waitqueue wait Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 11/25] dept: Apply sdt_might_sleep_{start, end}() " Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 12/25] dept: Distinguish each syscall context from another Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 13/25] dept: Distinguish each work " Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 14/25] dept: Add a mechanism to refill the internal memory pools on running out Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 15/25] locking/lockdep, cpu/hotplus: Use a weaker annotation in AP thread Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 16/25] dept: Apply sdt_might_sleep_{start,end}() to dma fence wait Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 16/25] dept: Apply sdt_might_sleep_{start, end}() " Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 17/25] dept: Track timeout waits separately with a new Kconfig Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 18/25] dept: Apply timeout consideration to wait_for_completion()/complete() Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 19/25] dept: Apply timeout consideration to swait Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 20/25] dept: Apply timeout consideration to waitqueue wait Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 21/25] dept: Apply timeout consideration to hashed-waitqueue wait Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 22/25] dept: Apply timeout consideration to dma fence wait Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 23/25] dept: Record the latest one out of consecutive waits of the same class Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 24/25] dept: Make Dept able to work with an external wgen Byungchul Park
2023-08-21 3:46 ` Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 25/25] dept: Track the potential waits of PG_{locked,writeback} Byungchul Park
2023-08-21 3:46 ` [RESEND PATCH v10 25/25] dept: Track the potential waits of PG_{locked, writeback} Byungchul Park
2023-08-21 4:25 ` [RESEND PATCH v10 25/25] dept: Track the potential waits of PG_{locked,writeback} Matthew Wilcox
2023-08-21 4:25 ` Matthew Wilcox
2023-08-21 4:51 ` Byungchul Park [this message]
2023-08-21 4:51 ` 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=20230821045136.GB73328@system.software.com \
--to=byungchul@sk.com \
--cc=42.hyeyoo@gmail.com \
--cc=adilger.kernel@dilger.ca \
--cc=akpm@linux-foundation.org \
--cc=amir73il@gmail.com \
--cc=boqun.feng@gmail.com \
--cc=chris.p.wilson@intel.com \
--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=gwan-gyeong.mun@intel.com \
--cc=hamohammed.sa@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hch@infradead.org \
--cc=hdanton@sina.com \
--cc=her0gyugyu@gmail.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=kernel_team@skhynix.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=longman@redhat.com \
--cc=max.byungchul.park@gmail.com \
--cc=melissa.srw@gmail.com \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=ngupta@vflare.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.