From: Brian Foster <bfoster@redhat.com>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: linux-xfs@vger.kernel.org, david@fromorbit.com
Subject: Re: [PATCH 6/6] xfs: rename "alloc_set_aside" to be more descriptive
Date: Fri, 18 Mar 2022 08:21:53 -0400 [thread overview]
Message-ID: <YjR5YVaiu8yWmgOJ@bfoster> (raw)
In-Reply-To: <164755208902.4194202.454742878504753117.stgit@magnolia>
On Thu, Mar 17, 2022 at 02:21:29PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> We've established in this patchset that the "alloc_set_aside" pool is
> actually used to ensure that a bmbt split always succeeds so that the
> filesystem won't run out of space mid-transaction and crash. Rename the
> variable and the function to be a little more suggestive of the purpose
> of this quantity.
>
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> ---
> fs/xfs/libxfs/xfs_alloc.c | 4 ++--
> fs/xfs/libxfs/xfs_alloc.h | 2 +-
> fs/xfs/xfs_fsops.c | 2 +-
> fs/xfs/xfs_log_recover.c | 2 +-
> fs/xfs/xfs_mount.c | 4 ++--
> fs/xfs/xfs_mount.h | 7 ++++---
> 6 files changed, 11 insertions(+), 10 deletions(-)
>
>
...
> diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
> index 9336176dc706..eac9534338fd 100644
> --- a/fs/xfs/xfs_mount.c
> +++ b/fs/xfs/xfs_mount.c
> @@ -656,7 +656,7 @@ xfs_mountfs(
> * Compute the amount of space to set aside to handle btree splits now
> * that we have calculated the btree maxlevels.
> */
> - mp->m_alloc_set_aside = xfs_alloc_set_aside(mp);
> + mp->m_bmbt_split_setaside = xfs_bmbt_split_setaside(mp);
> mp->m_ag_max_usable = xfs_alloc_ag_max_usable(mp);
>
> /*
> @@ -1153,7 +1153,7 @@ xfs_mod_fdblocks(
> * problems (i.e. transaction abort, pagecache discards, etc.) than
> * slightly premature -ENOSPC.
> */
> - set_aside = mp->m_alloc_set_aside + atomic64_read(&mp->m_allocbt_blks);
> + set_aside = mp->m_bmbt_split_setaside + atomic64_read(&mp->m_allocbt_blks);
IMO the whole end result would be more simple if the helper(s) were
written to fully isolate usage of >m_bmbt_split_setaside to within those
helpers, as opposed to continuing to leave around the need to open code
the set aside calculation anywhere. That said, this is more commentary
on the previous couple or so patches than this one and this is an
improvement overall:
Reviewed-by: Brian Foster <bfoster@redhat.com>
> percpu_counter_add_batch(&mp->m_fdblocks, delta, batch);
> if (__percpu_counter_compare(&mp->m_fdblocks, set_aside,
> XFS_FDBLOCKS_BATCH) >= 0) {
> diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
> index 74e9b8558162..6c4cbd4a0c32 100644
> --- a/fs/xfs/xfs_mount.h
> +++ b/fs/xfs/xfs_mount.h
> @@ -134,7 +134,8 @@ typedef struct xfs_mount {
> uint m_refc_maxlevels; /* max refcount btree level */
> unsigned int m_agbtree_maxlevels; /* max level of all AG btrees */
> xfs_extlen_t m_ag_prealloc_blocks; /* reserved ag blocks */
> - uint m_alloc_set_aside; /* space we can't use */
> + /* space reserved to ensure bmbt splits always succeed */
> + unsigned int m_bmbt_split_setaside;
> uint m_ag_max_usable; /* max space per AG */
> int m_dalign; /* stripe unit */
> int m_swidth; /* stripe width */
> @@ -503,7 +504,7 @@ xfs_fdblocks_available(
> {
> int64_t free = percpu_counter_sum(&mp->m_fdblocks);
>
> - free -= mp->m_alloc_set_aside;
> + free -= mp->m_bmbt_split_setaside;
> free -= atomic64_read(&mp->m_allocbt_blks);
> return free;
> }
> @@ -516,7 +517,7 @@ xfs_fdblocks_available_fast(
> int64_t free;
>
> free = percpu_counter_read_positive(&mp->m_fdblocks);
> - free -= mp->m_alloc_set_aside;
> + free -= mp->m_bmbt_split_setaside;
> free -= atomic64_read(&mp->m_allocbt_blks);
> return free;
> }
>
next prev parent reply other threads:[~2022-03-18 12:22 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-17 21:20 [PATCHSET v2 0/6] xfs: fix incorrect reserve pool calculations and reporting Darrick J. Wong
2022-03-17 21:21 ` [PATCH 1/6] xfs: document the XFS_ALLOC_AGFL_RESERVE constant Darrick J. Wong
2022-03-18 12:17 ` Brian Foster
2022-03-17 21:21 ` [PATCH 2/6] xfs: actually set aside enough space to handle a bmbt split Darrick J. Wong
2022-03-18 12:17 ` Brian Foster
2022-03-18 20:52 ` Darrick J. Wong
2022-03-17 21:21 ` [PATCH 3/6] xfs: don't include bnobt blocks when reserving free block pool Darrick J. Wong
2022-03-18 12:18 ` Brian Foster
2022-03-18 21:01 ` Darrick J. Wong
2022-03-17 21:21 ` [PATCH 4/6] xfs: fix infinite loop " Darrick J. Wong
2022-03-18 12:18 ` Brian Foster
2022-03-17 21:21 ` [PATCH 5/6] xfs: don't report reserved bnobt space as available Darrick J. Wong
2022-03-18 12:19 ` Brian Foster
2022-03-18 21:19 ` Darrick J. Wong
2022-03-17 21:21 ` [PATCH 6/6] xfs: rename "alloc_set_aside" to be more descriptive Darrick J. Wong
2022-03-18 12:21 ` Brian Foster [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-03-20 16:43 [PATCHSET v3 0/6] xfs: fix incorrect reserve pool calculations and reporting Darrick J. Wong
2022-03-20 16:44 ` [PATCH 6/6] xfs: rename "alloc_set_aside" to be more descriptive Darrick J. Wong
2022-03-23 21:21 ` Dave Chinner
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=YjR5YVaiu8yWmgOJ@bfoster \
--to=bfoster@redhat.com \
--cc=david@fromorbit.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox