linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Chandan Babu R <chandan.babu@oracle.com>,
	Matthew Wilcox <willy@infradead.org>
Cc: "Darrick J. Wong" <djwong@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org
Subject: conver XFS perag lookup to xarrays
Date: Mon, 12 Aug 2024 08:30:59 +0200	[thread overview]
Message-ID: <20240812063143.3806677-1-hch@lst.de> (raw)

Hi all,

for a project with the pending RT group code in XFS that reuses the basic
perag concepts I'd much prefer to use xarrays over the old radix tree for
nicer iteration semantics.

This series converts the perag code to xarrays to keep them in sync and
throws in the use of kfree_rcu_mightsleep in the same area.

To easily allow porting libxfs code to userspace this can't use xa_set
which requires stealing bits from the pointer, and as part of
investigating that I realized that the xa_set API is generally not so
nice for callers for which a pre-existing entry in the xarray is
always an error.  Thus the first patch adds a new xa_set wrapper that
treats an existing entry as an error and avoids the need to use of
xa_err.  It could also be used to clean up a significant number of
existing callers.

Diffstat:
 fs/xfs/libxfs/xfs_ag.c |   93 ++++---------------------------------------------
 fs/xfs/libxfs/xfs_ag.h |   14 -------
 fs/xfs/xfs_icache.c    |   77 ++++++++++++++++++++++++++--------------
 fs/xfs/xfs_mount.h     |    3 -
 fs/xfs/xfs_super.c     |    3 -
 fs/xfs/xfs_trace.h     |    3 -
 include/linux/xarray.h |    1 
 lib/xarray.c           |   33 +++++++++++++++++
 8 files changed, 96 insertions(+), 131 deletions(-)

             reply	other threads:[~2024-08-12  6:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-12  6:30 Christoph Hellwig [this message]
2024-08-12  6:31 ` [PATCH 1/3] xarray: add xa_set Christoph Hellwig
2024-08-12 12:25   ` Matthew Wilcox
2024-08-12 12:28     ` Christoph Hellwig
2024-08-12  6:31 ` [PATCH 2/3] xfs: convert perag lookup to xarray Christoph Hellwig
2024-08-12 14:39   ` Matthew Wilcox
2024-08-12 14:43     ` Christoph Hellwig
2024-08-12 16:39   ` Pankaj Raghav (Samsung)
2024-08-12 19:02     ` Matthew Wilcox
2024-08-13  8:30       ` Pankaj Raghav (Samsung)
2024-08-13  6:37   ` kernel test robot
2024-08-14  4:59   ` Dave Chinner
2024-08-14  5:21     ` Christoph Hellwig
2024-08-12  6:31 ` [PATCH 3/3] xfs: use kfree_rcu_mightsleep to free the perag structures Christoph Hellwig

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=20240812063143.3806677-1-hch@lst.de \
    --to=hch@lst.de \
    --cc=akpm@linux-foundation.org \
    --cc=chandan.babu@oracle.com \
    --cc=djwong@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@vger.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).