From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 5/6] xfs: maintain a sequence count for inode fork manipulations
Date: Fri, 13 Jul 2018 15:50:33 -0700 [thread overview]
Message-ID: <20180713225033.GO32415@magnolia> (raw)
In-Reply-To: <20180712134910.30298-6-hch@lst.de>
On Thu, Jul 12, 2018 at 03:49:09PM +0200, Christoph Hellwig wrote:
> Add a simple 32-bit unsigned integer as the sequence count for
> modifications to the extent list in the inode fork. This will be
> used to optimize away extent list lookups in the writeback code.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks ok,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
--D
> ---
> fs/xfs/libxfs/xfs_iext_tree.c | 4 ++++
> fs/xfs/libxfs/xfs_inode_fork.h | 1 +
> 2 files changed, 5 insertions(+)
>
> diff --git a/fs/xfs/libxfs/xfs_iext_tree.c b/fs/xfs/libxfs/xfs_iext_tree.c
> index b80c63faace2..cce7e8024f46 100644
> --- a/fs/xfs/libxfs/xfs_iext_tree.c
> +++ b/fs/xfs/libxfs/xfs_iext_tree.c
> @@ -650,6 +650,7 @@ xfs_iext_insert(
> cur->leaf->recs[i] = cur->leaf->recs[i - 1];
> xfs_iext_set(cur_rec(cur), irec);
> ifp->if_bytes += sizeof(struct xfs_iext_rec);
> + ifp->if_seq++;
>
> trace_xfs_iext_insert(ip, cur, state, _RET_IP_);
>
> @@ -869,6 +870,7 @@ xfs_iext_remove(
> leaf->recs[i] = leaf->recs[i + 1];
> xfs_iext_rec_clear(&leaf->recs[nr_entries]);
> ifp->if_bytes -= sizeof(struct xfs_iext_rec);
> + ifp->if_seq++;
>
> if (cur->pos == 0 && nr_entries > 0) {
> xfs_iext_update_node(ifp, offset, xfs_iext_leaf_key(leaf, 0), 1,
> @@ -983,6 +985,8 @@ xfs_iext_update_extent(
> trace_xfs_bmap_pre_update(ip, cur, state, _RET_IP_);
> xfs_iext_set(cur_rec(cur), new);
> trace_xfs_bmap_post_update(ip, cur, state, _RET_IP_);
> +
> + ifp->if_seq++;
> }
>
> /*
> diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h
> index 1492143371f3..f20b2468ca35 100644
> --- a/fs/xfs/libxfs/xfs_inode_fork.h
> +++ b/fs/xfs/libxfs/xfs_inode_fork.h
> @@ -14,6 +14,7 @@ struct xfs_dinode;
> */
> struct xfs_ifork {
> int if_bytes; /* bytes in if_u1 */
> + unsigned int if_seq;
> struct xfs_btree_block *if_broot; /* file's incore btree root */
> short if_broot_bytes; /* bytes allocated for root */
> unsigned char if_flags; /* per-fork flags */
> --
> 2.18.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2018-07-13 23:07 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-12 13:49 reduce lookups in the COW extent tree V2 Christoph Hellwig
2018-07-12 13:49 ` [PATCH 1/6] xfs: remove if_real_bytes Christoph Hellwig
2018-07-12 13:49 ` [PATCH 2/6] xfs: simplify xfs_idata_realloc Christoph Hellwig
2018-07-12 13:49 ` [PATCH 3/6] xfs: remove the xfs_ifork_t typedef Christoph Hellwig
2018-07-12 13:49 ` [PATCH 4/6] xfs: introduce a new xfs_inode_has_cow_data helper Christoph Hellwig
2018-07-12 13:49 ` [PATCH 5/6] xfs: maintain a sequence count for inode fork manipulations Christoph Hellwig
2018-07-13 22:50 ` Darrick J. Wong [this message]
2018-07-12 13:49 ` [PATCH 6/6] xfs: avoid COW fork extent lookups in writeback if the fork didn't change Christoph Hellwig
2018-07-13 22:51 ` Darrick J. Wong
2018-07-14 0:03 ` Dave Chinner
2018-07-17 13:37 ` Christoph Hellwig
2018-07-17 23:13 ` Dave Chinner
-- strict thread matches above, loose matches on Subject: below --
2018-07-17 23:23 reduce lookups in the COW extent tree V3 Christoph Hellwig
2018-07-17 23:24 ` [PATCH 5/6] xfs: maintain a sequence count for inode fork manipulations Christoph Hellwig
2018-07-18 14:40 ` Carlos Maiolino
2018-07-19 16:32 ` Christoph Hellwig
2018-07-19 18:27 ` Darrick J. Wong
2018-07-23 12:11 ` Carlos Maiolino
2018-07-10 6:05 reduce lookups in the COW extent tree Christoph Hellwig
2018-07-10 6:05 ` [PATCH 5/6] xfs: maintain a sequence count for inode fork manipulations 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=20180713225033.GO32415@magnolia \
--to=darrick.wong@oracle.com \
--cc=hch@lst.de \
--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;
as well as URLs for NNTP newsgroup(s).