From: "Darrick J. Wong" <djwong@kernel.org>
To: Dave Chinner <david@fromorbit.com>
Cc: John Garry <john.g.garry@oracle.com>,
brauner@kernel.org, hch@lst.de, viro@zeniv.linux.org.uk,
jack@suse.cz, cem@kernel.org, linux-fsdevel@vger.kernel.org,
dchinner@redhat.com, linux-xfs@vger.kernel.org,
linux-kernel@vger.kernel.org, ojaswin@linux.ibm.com,
ritesh.list@gmail.com, martin.petersen@oracle.com,
linux-ext4@vger.kernel.org, linux-block@vger.kernel.org,
catherine.hoang@oracle.com
Subject: Re: [PATCH v6 02/12] xfs: add helpers to compute log item overhead
Date: Tue, 8 Apr 2025 16:21:31 -0700 [thread overview]
Message-ID: <20250408232131.GK6307@frogsfrogsfrogs> (raw)
In-Reply-To: <Z_WoUawfJ_QFF5kP@dread.disaster.area>
On Wed, Apr 09, 2025 at 08:50:57AM +1000, Dave Chinner wrote:
> On Tue, Apr 08, 2025 at 10:41:59AM +0000, John Garry wrote:
> > From: "Darrick J. Wong" <djwong@kernel.org>
> >
> > Add selected helpers to estimate the transaction reservation required to
> > write various log intent and buffer items to the log. These helpers
> > will be used by the online repair code for more precise estimations of
> > how much work can be done in a single transaction.
> >
> > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
> > Signed-off-by: John Garry <john.g.garry@oracle.com>
> > ---
> > fs/xfs/libxfs/xfs_trans_resv.c | 6 +++---
> > fs/xfs/libxfs/xfs_trans_resv.h | 4 ++++
> > fs/xfs/xfs_bmap_item.c | 10 ++++++++++
> > fs/xfs/xfs_bmap_item.h | 3 +++
> > fs/xfs/xfs_buf_item.c | 19 +++++++++++++++++++
> > fs/xfs/xfs_buf_item.h | 3 +++
> > fs/xfs/xfs_extfree_item.c | 10 ++++++++++
> > fs/xfs/xfs_extfree_item.h | 3 +++
> > fs/xfs/xfs_log_cil.c | 4 +---
> > fs/xfs/xfs_log_priv.h | 13 +++++++++++++
> > fs/xfs/xfs_refcount_item.c | 10 ++++++++++
> > fs/xfs/xfs_refcount_item.h | 3 +++
> > fs/xfs/xfs_rmap_item.c | 10 ++++++++++
> > fs/xfs/xfs_rmap_item.h | 3 +++
> > 14 files changed, 95 insertions(+), 6 deletions(-)
> >
> > diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
> > index 13d00c7166e1..ce1393bd3561 100644
> > --- a/fs/xfs/libxfs/xfs_trans_resv.c
> > +++ b/fs/xfs/libxfs/xfs_trans_resv.c
> > @@ -47,7 +47,7 @@ xfs_buf_log_overhead(void)
> > * will be changed in a transaction. size is used to tell how many
> > * bytes should be reserved per item.
> > */
> > -STATIC uint
> > +uint
> > xfs_calc_buf_res(
> > uint nbufs,
> > uint size)
> > @@ -84,7 +84,7 @@ xfs_allocfree_block_count(
> > * in the same transaction as an allocation or a free, so we compute them
> > * separately.
> > */
> > -static unsigned int
> > +unsigned int
> > xfs_refcountbt_block_count(
> > struct xfs_mount *mp,
> > unsigned int num_ops)
> > @@ -129,7 +129,7 @@ xfs_rtrefcountbt_block_count(
> > * additional to the records and pointers that fit inside the inode
> > * forks.
> > */
> > -STATIC uint
> > +uint
> > xfs_calc_inode_res(
> > struct xfs_mount *mp,
> > uint ninodes)
> > diff --git a/fs/xfs/libxfs/xfs_trans_resv.h b/fs/xfs/libxfs/xfs_trans_resv.h
> > index 0554b9d775d2..e76052028cc9 100644
> > --- a/fs/xfs/libxfs/xfs_trans_resv.h
> > +++ b/fs/xfs/libxfs/xfs_trans_resv.h
> > @@ -97,6 +97,10 @@ struct xfs_trans_resv {
> >
> > void xfs_trans_resv_calc(struct xfs_mount *mp, struct xfs_trans_resv *resp);
> > uint xfs_allocfree_block_count(struct xfs_mount *mp, uint num_ops);
> > +unsigned int xfs_refcountbt_block_count(struct xfs_mount *mp,
> > + unsigned int num_ops);
> > +uint xfs_calc_buf_res(uint nbufs, uint size);
> > +uint xfs_calc_inode_res(struct xfs_mount *mp, uint ninodes);
>
> Why are these exported? They aren't used in this patch, and any code
> that doing calculate log reservation calculation should really be
> placed in xfs_trans_resv.c along with all the existing log
> reservation calculations...
I've redone this in a different manner, will send a full patchset after
it runs through QA.
--D
> -Dave
> --
> Dave Chinner
> david@fromorbit.com
next prev parent reply other threads:[~2025-04-08 23:21 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-08 10:41 [PATCH v6 00/12] large atomic writes for xfs John Garry
2025-04-08 10:41 ` [PATCH v6 01/12] fs: add atomic write unit max opt to statx John Garry
2025-04-09 2:23 ` Darrick J. Wong
2025-04-09 10:45 ` Christoph Hellwig
2025-04-08 10:41 ` [PATCH v6 02/12] xfs: add helpers to compute log item overhead John Garry
2025-04-08 22:50 ` Dave Chinner
2025-04-08 23:21 ` Darrick J. Wong [this message]
2025-04-09 2:25 ` [PATCH v6.1 " Darrick J. Wong
2025-04-09 2:25 ` [PATCH v6.1 RFC 02.1/12] xfs: add helpers to compute transaction reservation for finishing intent items Darrick J. Wong
2025-04-08 10:42 ` [PATCH v6 03/12] xfs: rename xfs_inode_can_atomicwrite() -> xfs_inode_can_hw_atomicwrite() John Garry
2025-04-09 2:02 ` Darrick J. Wong
2025-04-09 10:46 ` Christoph Hellwig
2025-04-08 10:42 ` [PATCH v6 04/12] xfs: allow block allocator to take an alignment hint John Garry
2025-04-08 10:42 ` [PATCH v6 05/12] xfs: refactor xfs_reflink_end_cow_extent() John Garry
2025-04-08 10:42 ` [PATCH v6 06/12] xfs: refine atomic write size check in xfs_file_write_iter() John Garry
2025-04-08 10:42 ` [PATCH v6 07/12] xfs: add xfs_atomic_write_cow_iomap_begin() John Garry
2025-04-08 10:42 ` [PATCH v6 08/12] xfs: add large atomic writes checks in xfs_direct_write_iomap_begin() John Garry
2025-04-08 10:42 ` [PATCH v6 09/12] xfs: commit CoW-based atomic writes atomically John Garry
2025-04-08 10:42 ` [PATCH v6 10/12] xfs: add xfs_file_dio_write_atomic() John Garry
2025-04-08 10:42 ` [PATCH v6 11/12] xfs: add xfs_compute_atomic_write_unit_max() John Garry
2025-04-08 21:28 ` Darrick J. Wong
2025-04-08 22:47 ` Dave Chinner
2025-04-09 0:41 ` Darrick J. Wong
2025-04-09 5:30 ` Dave Chinner
2025-04-09 8:15 ` John Garry
2025-04-09 22:49 ` Dave Chinner
2025-04-10 8:58 ` John Garry
2025-04-09 23:46 ` Darrick J. Wong
2025-04-08 10:42 ` [PATCH v6 12/12] xfs: update atomic write limits John Garry
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=20250408232131.GK6307@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=brauner@kernel.org \
--cc=catherine.hoang@oracle.com \
--cc=cem@kernel.org \
--cc=david@fromorbit.com \
--cc=dchinner@redhat.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=john.g.garry@oracle.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=ojaswin@linux.ibm.com \
--cc=ritesh.list@gmail.com \
--cc=viro@zeniv.linux.org.uk \
/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.