All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Chandan Babu R <chandan.babu@oracle.com>
Cc: "Darrick J. Wong" <djwong@kernel.org>, linux-xfs@vger.kernel.org
Subject: Re: [PATCH V9 12/19] xfs: Introduce macros to represent new maximum extent counts for data/attr forks
Date: Thu, 7 Apr 2022 18:56:31 +1000	[thread overview]
Message-ID: <20220407085631.GK1544202@dread.disaster.area> (raw)
In-Reply-To: <87o81dxq5y.fsf@debian-BULLSEYE-live-builder-AMD64>

On Thu, Apr 07, 2022 at 01:48:17PM +0530, Chandan Babu R wrote:
> On 07 Apr 2022 at 08:14, Dave Chinner wrote:
> > On Wed, Apr 06, 2022 at 06:58:55PM -0700, Darrick J. Wong wrote:
> >> On Thu, Apr 07, 2022 at 11:05:44AM +1000, Dave Chinner wrote:
> >> > On Wed, Apr 06, 2022 at 11:48:56AM +0530, Chandan Babu R wrote:
> >> > > diff --git a/fs/xfs/libxfs/xfs_bmap_btree.c b/fs/xfs/libxfs/xfs_bmap_btree.c
> >> > > index 453309fc85f2..7aabeccea9ab 100644
> >> > > --- a/fs/xfs/libxfs/xfs_bmap_btree.c
> >> > > +++ b/fs/xfs/libxfs/xfs_bmap_btree.c
> >> > > @@ -611,7 +611,8 @@ xfs_bmbt_maxlevels_ondisk(void)
> >> > >  	minrecs[1] = xfs_bmbt_block_maxrecs(blocklen, false) / 2;
> >> > >  
> >> > >  	/* One extra level for the inode root. */
> >> > > -	return xfs_btree_compute_maxlevels(minrecs, MAXEXTNUM) + 1;
> >> > > +	return xfs_btree_compute_maxlevels(minrecs,
> >> > > +			XFS_MAX_EXTCNT_DATA_FORK_LARGE) + 1;
> >> > >  }
> >> > 
> >> > Why is this set to XFS_MAX_EXTCNT_DATA_FORK_LARGE rather than being
> >> > conditional xfs_has_large_extent_counts(mp)? i.e. if the feature bit
> >> > is not set, the maximum on-disk levels in the bmbt is determined by
> >> > XFS_MAX_EXTCNT_DATA_FORK_SMALL, not XFS_MAX_EXTCNT_DATA_FORK_LARGE.
> >> 
> >> This function (and all the other _maxlevels_ondisk functions) compute
> >> the maximum possible btree height for any filesystem that we'd care to
> >> mount.  This value is then passed to the functions that create the btree
> >> cursor caches, which is why this is independent of any xfs_mount.
> >> 
> >> That said ... depending on how much this inflates the size of the bmbt
> >> cursor cache, I think we could create multiple slabs.
> >> 
> >> > The "_ondisk" suffix implies that it has something to do with the
> >> > on-disk format of the filesystem, but AFAICT what we are calculating
> >> > here is a constant used for in-memory structure allocation? There
> >> > needs to be something explained/changed here, because this is
> >> > confusing...
> >> 
> >> You suggested it. ;)
> >> 
> >> https://lore.kernel.org/linux-xfs/20211013075743.GG2361455@dread.disaster.area/
> >
> > That doesn't mean it's perfect and can't be changed, nor that I
> > remember the exact details of something that happened 6 months ago.
> > Indeed, if I'm confused by it 6 months later, that tends to say it
> > wasn't a very good name... :)
> >
> > .... or that the missing context needs explaining so the reader is
> > reminded what the _ondisk() name means.
> >
> > i.e. the problem goes away with a simple comment:
> >
> > /*
> >  * Calculate the maximum possible height of the btree that the
> >  * on-disk format supports. This is used for sizing structures large
> >  * enough to support every possible configuration of a filesystem
> >  * that might get mounted.
> >  */
> >
> 
> If there are no objections, I will include the above comment as part of this
> patch.

Yes, that's fine, and with that added, you can add:

Reviewed-by: Dave Chinner <dchinner@redhat.com>

as well.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2022-04-07  8:56 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-06  6:18 [PATCH V9 00/19] xfs: Extend per-inode extent counters Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 01/19] xfs: Move extent count limits to xfs_format.h Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 02/19] xfs: Define max extent length based on on-disk format definition Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 03/19] xfs: Introduce xfs_iext_max_nextents() helper Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 04/19] xfs: Use xfs_extnum_t instead of basic data types Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 05/19] xfs: Introduce xfs_dfork_nextents() helper Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 06/19] xfs: Use basic types to define xfs_log_dinode's di_nextents and di_anextents Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 07/19] xfs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 08/19] xfs: Introduce XFS_SB_FEAT_INCOMPAT_NREXT64 and associated per-fs feature bit Chandan Babu R
2022-04-07  0:50   ` Dave Chinner
2022-04-06  6:18 ` [PATCH V9 09/19] xfs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64 Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 10/19] xfs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 11/19] xfs: Use uint64_t to count maximum blocks that can be used by BMBT Chandan Babu R
2022-04-07  0:52   ` Dave Chinner
2022-04-06  6:18 ` [PATCH V9 12/19] xfs: Introduce macros to represent new maximum extent counts for data/attr forks Chandan Babu R
2022-04-07  1:05   ` Dave Chinner
2022-04-07  1:58     ` Darrick J. Wong
2022-04-07  2:44       ` Dave Chinner
2022-04-07  8:18         ` Chandan Babu R
2022-04-07  8:56           ` Dave Chinner [this message]
2022-04-07  8:18       ` Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 13/19] xfs: Replace numbered inode recovery error messages with descriptive ones Chandan Babu R
2022-04-07  1:50   ` Darrick J. Wong
2022-04-06  6:18 ` [PATCH V9 14/19] xfs: Introduce per-inode 64-bit extent counters Chandan Babu R
2022-04-06 19:03   ` kernel test robot
2022-04-07  1:07     ` Dave Chinner
2022-04-07  1:07       ` Dave Chinner
2022-04-07  8:18       ` Chandan Babu R
2022-04-07  8:18         ` Chandan Babu R
2022-04-06  6:18 ` [PATCH V9 15/19] xfs: Directory's data fork extent counter can never overflow Chandan Babu R
2022-04-07  1:13   ` Dave Chinner
2022-04-07  1:48     ` Darrick J. Wong
2022-04-07  8:19       ` Chandan Babu R
2022-04-09 13:47   ` [PATCH V9.1] " Chandan Babu R
2022-04-11  1:33     ` Dave Chinner
2022-04-11 22:07     ` Darrick J. Wong
2022-04-12  3:39       ` Chandan Babu R
2022-04-12 14:02   ` [PATCH V9.2] " Chandan Babu R
2022-04-12 17:04     ` Darrick J. Wong
2022-04-06  6:19 ` [PATCH V9 16/19] xfs: Conditionally upgrade existing inodes to use large extent counters Chandan Babu R
2022-04-07  1:22   ` Dave Chinner
2022-04-07  1:46     ` Darrick J. Wong
2022-04-07  8:19     ` Chandan Babu R
2022-04-07  1:46   ` Darrick J. Wong
2022-04-07  2:00     ` Darrick J. Wong
2022-04-07  8:19     ` Chandan Babu R
2022-04-09 13:52   ` [PATCH V9.1] " Chandan Babu R
2022-04-11  1:34     ` Dave Chinner
2022-04-06  6:19 ` [PATCH V9 17/19] xfs: Decouple XFS_IBULK flags from XFS_IWALK flags Chandan Babu R
2022-04-07  1:29   ` Darrick J. Wong
2022-04-06  6:19 ` [PATCH V9 18/19] xfs: Enable bulkstat ioctl to support 64-bit per-inode extent counters Chandan Babu R
2022-04-07  1:29   ` Darrick J. Wong
2022-04-07  1:42     ` Dave Chinner
2022-04-07  8:20     ` Chandan Babu R
2022-04-09 13:57   ` [PATCH V9.1] " Chandan Babu R
2022-04-11  2:56     ` Dave Chinner
2022-04-13  2:57     ` Darrick J. Wong
2022-04-13  7:48       ` Chandan Babu R
2022-04-06  6:19 ` [PATCH V9 19/19] xfs: Add XFS_SB_FEAT_INCOMPAT_NREXT64 to the list of supported flags Chandan Babu R
2022-04-07  1:23   ` Dave Chinner
2022-04-07  1:26   ` Darrick J. Wong
2022-04-09 13:23 ` [PATCH V9.1] xfs: Introduce macros to represent new maximum extent counts for data/attr forks Chandan Babu R

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=20220407085631.GK1544202@dread.disaster.area \
    --to=david@fromorbit.com \
    --cc=chandan.babu@oracle.com \
    --cc=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.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.