From: Dave Chinner <dgc@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Carlos Maiolino <cem@kernel.org>,
Dave Chinner <dchinner@redhat.com>,
Brian Foster <bfoster@redhat.com>,
linux-xfs@vger.kernel.org,
syzbot+0391d34e801643e2809b@syzkaller.appspotmail.com,
"Darrick J. Wong" <djwong@kernel.org>
Subject: Re: [PATCH 3/4] xfs: switch (back) to a per-buftarg buffer hash
Date: Wed, 18 Mar 2026 09:00:18 +1100 [thread overview]
Message-ID: <abnO8hP-EKBltkri@dread> (raw)
In-Reply-To: <20260317134110.1691097-4-hch@lst.de>
On Tue, Mar 17, 2026 at 02:40:54PM +0100, Christoph Hellwig wrote:
> The per-AG buffer hashes were added when all buffer lookups took a
> per-hash look. Since then we've made lookups entirely lockless and
> removed the need for a hash-wide lock for inserts and removals as
> well. With this there is no need to sharding the hash, so reduce the
> used resources by using a per-buftarg hash for all buftargs.
>
> Long after writing this initially, syzbot found a problem in the buffer
> cache teardown order, which this happens to fix as well by doing the
> entire buffer cache teardown in one places instead of splitting it
> between destroying the buftarg and the perag structures.
>
> Link: https://lore.kernel.org/linux-xfs/aLeUdemAZ5wmtZel@dread.disaster.area/
> Reported-by: syzbot+0391d34e801643e2809b@syzkaller.appspotmail.com
> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
> Tested-by: syzbot+0391d34e801643e2809b@syzkaller.appspotmail.com
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> fs/xfs/libxfs/xfs_ag.c | 13 ++---------
> fs/xfs/libxfs/xfs_ag.h | 2 --
> fs/xfs/xfs_buf.c | 51 +++++++++++-------------------------------
> fs/xfs/xfs_buf.h | 10 +--------
> fs/xfs/xfs_buf_mem.c | 11 ++-------
> 5 files changed, 18 insertions(+), 69 deletions(-)
Looks fine from a logic POV - the LRU life cycle now sits inside the
hash table life cycle.
I'd also suggest that the minimum size of the rhashtable should be
increased - it will always have a higher minimum population as a
global table as a set of per-ag tables. We should try to avoid
thrashing on resizing when the filesystem is mostly idle and/or
under memory pressure, so I think a larger min size should be
specified along with this globalisation change...
-Dave.
--
Dave Chinner
dgc@kernel.org
next prev parent reply other threads:[~2026-03-17 22:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-17 13:40 buffer cache simplification v5 Christoph Hellwig
2026-03-17 13:40 ` [PATCH 1/4] xfs: don't keep a reference for buffers on the LRU Christoph Hellwig
2026-03-17 21:33 ` Dave Chinner
2026-03-18 14:38 ` Christoph Hellwig
2026-03-18 11:44 ` Brian Foster
2026-03-17 13:40 ` [PATCH 2/4] xfs: use a lockref for the buffer reference count Christoph Hellwig
2026-03-17 21:53 ` Dave Chinner
2026-03-18 14:49 ` Christoph Hellwig
2026-03-17 13:40 ` [PATCH 3/4] xfs: switch (back) to a per-buftarg buffer hash Christoph Hellwig
2026-03-17 22:00 ` Dave Chinner [this message]
2026-03-18 12:14 ` Brian Foster
2026-03-17 13:40 ` [PATCH 4/4] xfs: don't decrement the buffer LRU count for in-use buffers Christoph Hellwig
2026-03-17 22:06 ` Dave Chinner
2026-03-18 11:47 ` Brian Foster
2026-03-18 11:45 ` Brian Foster
-- strict thread matches above, loose matches on Subject: below --
2026-03-23 7:50 buffer cache simplification v6 Christoph Hellwig
2026-03-23 7:50 ` [PATCH 3/4] xfs: switch (back) to a per-buftarg buffer hash Christoph Hellwig
2026-03-23 12:27 ` Brian Foster
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=abnO8hP-EKBltkri@dread \
--to=dgc@kernel.org \
--cc=bfoster@redhat.com \
--cc=cem@kernel.org \
--cc=dchinner@redhat.com \
--cc=djwong@kernel.org \
--cc=hch@lst.de \
--cc=linux-xfs@vger.kernel.org \
--cc=syzbot+0391d34e801643e2809b@syzkaller.appspotmail.com \
/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.