linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] btrfs: extent-tree-v2, gc and no meta ref counting
@ 2021-12-15 20:43 Josef Bacik
  2021-12-15 20:43 ` [PATCH 1/9] btrfs: remove BUG_ON(ret) in alloc_reserved_tree_block Josef Bacik
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Josef Bacik @ 2021-12-15 20:43 UTC (permalink / raw)
  To: linux-btrfs, kernel-team

Hello,

This is the kernel side of the support for the GC trees and no longer tracking
metadata reference counts.

For the GC tree we're only implementing offloading the truncate to the GC tree
for now.  As new support is added we'll add code for the garbage collection for
each of the new operations.  Truncate was picked because it's simple enough to
do, gets us a nice latency win on normal workloads, and is a quick way to
validate that the GC tree is doing what it's supposed to.

This also disables the reference counting of metadata blocks.  Snapshotting and
everything reference counting related to metadata has been disabled, and will be
turned back on as the code needed to support those operations is added back.

This survives xfstests without blowing up.  Thanks,

Josef

Josef Bacik (9):
  btrfs: remove BUG_ON(ret) in alloc_reserved_tree_block
  btrfs: add a alloc_reserved_extent helper
  btrfs: remove `last_ref` from the extent freeing code
  btrfs: add a do_free_extent_accounting helper
  btrfs: don't do backref modification for metadata for extent tree v2
  btrfs: add definitions and read support for the garbage collection
    tree
  btrfs: add a btrfs_first_item helper
  btrfs: turn evict_refill_and_join into a real helper
  btrfs: add garbage collection tree support

 fs/btrfs/Makefile               |   2 +-
 fs/btrfs/ctree.c                |  23 ++++
 fs/btrfs/ctree.h                |  11 +-
 fs/btrfs/disk-io.c              |  14 +-
 fs/btrfs/extent-tree.c          | 154 +++++++++++-----------
 fs/btrfs/gc-tree.c              | 223 ++++++++++++++++++++++++++++++++
 fs/btrfs/gc-tree.h              |  15 +++
 fs/btrfs/inode.c                |  65 +++-------
 fs/btrfs/print-tree.c           |   4 +
 fs/btrfs/space-info.c           |   4 +-
 fs/btrfs/transaction.c          |  52 ++++++++
 fs/btrfs/transaction.h          |   2 +
 include/uapi/linux/btrfs_tree.h |   6 +
 13 files changed, 441 insertions(+), 134 deletions(-)
 create mode 100644 fs/btrfs/gc-tree.c
 create mode 100644 fs/btrfs/gc-tree.h

-- 
2.26.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-12-15 20:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-15 20:43 [PATCH 0/9] btrfs: extent-tree-v2, gc and no meta ref counting Josef Bacik
2021-12-15 20:43 ` [PATCH 1/9] btrfs: remove BUG_ON(ret) in alloc_reserved_tree_block Josef Bacik
2021-12-15 20:43 ` [PATCH 2/9] btrfs: add a alloc_reserved_extent helper Josef Bacik
2021-12-15 20:43 ` [PATCH 3/9] btrfs: remove `last_ref` from the extent freeing code Josef Bacik
2021-12-15 20:43 ` [PATCH 4/9] btrfs: add a do_free_extent_accounting helper Josef Bacik
2021-12-15 20:43 ` [PATCH 5/9] btrfs: don't do backref modification for metadata for extent tree v2 Josef Bacik
2021-12-15 20:43 ` [PATCH 6/9] btrfs: add definitions and read support for the garbage collection tree Josef Bacik
2021-12-15 20:43 ` [PATCH 7/9] btrfs: add a btrfs_first_item helper Josef Bacik
2021-12-15 20:43 ` [PATCH 8/9] btrfs: turn evict_refill_and_join into a real helper Josef Bacik
2021-12-15 20:43 ` [PATCH 9/9] btrfs: add garbage collection tree support Josef Bacik

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).