All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: djwong@kernel.org
Cc: Christoph Hellwig <hch@lst.de>, linux-xfs@vger.kernel.org
Subject: [PATCHSET v3 00/10] xfs: consolidate posteof and cowblocks cleanup
Date: Mon, 18 Jan 2021 14:13:01 -0800	[thread overview]
Message-ID: <161100798100.90204.7839064495063223590.stgit@magnolia> (raw)

Hi all,

Currently, we treat the garbage collection of post-EOF preallocations
and copy-on-write preallocations as totally separate tasks -- different
incore inode tags, different workqueues, etc.  This is wasteful of radix
tree tags and workqueue resources since we effectively have parallel
code paths to do the same thing.

Therefore, consolidate both functions under one radix tree bit and one
workqueue function that scans an inode for both things at the same time.
At the end of the series we make the scanning per-AG instead of per-fs
so that the scanning can run in parallel.  This reduces locking
contention from background threads and will free up a radix tree bit for
the deferred inode inactivation series.

v2: clean up and rebase against 5.11.
v3: various streamlining as part of restructuring the space reclaim series

If you're going to start using this mess, you probably ought to just
pull from my git trees, which are linked below.

This is an extraordinary way to destroy everything.  Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=eofblocks-consolidation-5.12
---
 fs/xfs/scrub/common.c |    4 -
 fs/xfs/xfs_globals.c  |    7 +
 fs/xfs/xfs_icache.c   |  258 +++++++++++++++++++++----------------------------
 fs/xfs/xfs_icache.h   |   16 +--
 fs/xfs/xfs_ioctl.c    |    2 
 fs/xfs/xfs_iwalk.c    |    2 
 fs/xfs/xfs_linux.h    |    3 -
 fs/xfs/xfs_mount.c    |    5 +
 fs/xfs/xfs_mount.h    |    9 +-
 fs/xfs/xfs_pwork.c    |   80 ++++++++++++++-
 fs/xfs/xfs_pwork.h    |    3 -
 fs/xfs/xfs_super.c    |   51 +++++++---
 fs/xfs/xfs_sysctl.c   |   15 +--
 fs/xfs/xfs_sysctl.h   |    3 -
 fs/xfs/xfs_trace.h    |    6 -
 15 files changed, 253 insertions(+), 211 deletions(-)


             reply	other threads:[~2021-01-18 22:14 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-18 22:13 Darrick J. Wong [this message]
2021-01-18 22:13 ` [PATCH 01/10] xfs: relocate the eofb/cowb workqueue functions Darrick J. Wong
2021-01-19  7:12   ` Christoph Hellwig
2021-01-18 22:13 ` [PATCH 02/10] xfs: hide xfs_icache_free_eofblocks Darrick J. Wong
2021-01-19  7:13   ` Christoph Hellwig
2021-01-18 22:13 ` [PATCH 03/10] xfs: hide xfs_icache_free_cowblocks Darrick J. Wong
2021-01-19  7:14   ` Christoph Hellwig
2021-01-18 22:13 ` [PATCH 04/10] xfs: remove trivial eof/cowblocks functions Darrick J. Wong
2021-01-19  7:16   ` Christoph Hellwig
2021-01-18 22:13 ` [PATCH 05/10] xfs: increase the default parallelism levels of pwork clients Darrick J. Wong
2021-01-20  4:30   ` [PATCH 5.1/10] xfs: create mount option to override metadata threads Darrick J. Wong
2021-01-20 23:34   ` [PATCH 05/10] xfs: increase the default parallelism levels of pwork clients Darrick J. Wong
2021-01-18 22:13 ` [PATCH 06/10] xfs: consolidate incore inode radix tree posteof/cowblocks tags Darrick J. Wong
2021-01-18 22:13 ` [PATCH 07/10] xfs: consolidate the eofblocks and cowblocks workers Darrick J. Wong
2021-01-19  7:17   ` Christoph Hellwig
2021-01-18 22:13 ` [PATCH 08/10] xfs: only walk the incore inode tree once per blockgc scan Darrick J. Wong
2021-01-18 22:13 ` [PATCH 09/10] xfs: rename block gc start and stop functions Darrick J. Wong
2021-01-18 22:13 ` [PATCH 10/10] xfs: parallelize block preallocation garbage collection Darrick J. Wong

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=161100798100.90204.7839064495063223590.stgit@magnolia \
    --to=djwong@kernel.org \
    --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 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.