linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [GIT PULL] bcachefs fixes for 6.11-rc5
@ 2024-09-06  7:50 Nathan Owens
  0 siblings, 0 replies; 14+ messages in thread
From: Nathan Owens @ 2024-09-06  7:50 UTC (permalink / raw)
  To: Kent Overstreet, Linus Torvalds
  Cc: linux-bcachefs, linux-fsdevel, linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1880 bytes --]

Will say both Linus and Kent has their points and reasoning, but I must 
ask, Kent please stick with the guidelines of submitting fixes, 
features, etc. I would like that Bcachefs to stay in the kernel and see 
how well Bcachefs comes along in the future and when it has your 
features and ideas. One day I would like to maybe switch from BTRFS to 
Bcachefs when it gets more features and some of the things I would like 
to be able to do, like restore from snapshot and eventually boot to 
snapshots to restore a messed up system. If it gets taken out of the 
tree, less people will know about it, nor likely take the trouble of 
compiling a kernel for Bcachefs.

This comment is not bash either Linus or you Kent, but just a thought in 
hopes that more people will possibly switch to it and encourage 
production keeps happening as well.

On 8/23/24 10:10 PM, Kent Overstreet wrote:
> On Sat, Aug 24, 2024 at 10:57:55AM GMT, Linus Torvalds wrote:
>> On Sat, 24 Aug 2024 at 10:48, K
ent Overstreet <kent.overstreet@linux.dev> wrote:
>>> Sure, which is why I'm not sending you anything here that isn't a fix
>>> for a real issue.
>> Kent, bugs happen.
> I _know_.
>
> Look, filesystem development is as high stakes as it gets. Normal kernel
> development, you fuck up - you crash the machine, you lose some work,
> you reboot, people are annoyed but generally it's ok.
>
> In filesystem land, you can corrupt data and not find out about it until
> weeks later, or _worse_. I've got stories to give people literal
> nightmares. Hell, that stuff has fueled my own nightmares for years. You
> know how much grey my beard has now?
>
> Which is why I have spent many years of my life building a codebase and
> development process where I can work productively where I can not just
> catch but recover from pretty much any fuckup imaginable.
>
> Because peace of mind is priceless...
>

[-- Attachment #1.2: publickey - ndowens08@proton.me - 0x227C5078.asc --]
[-- Type: application/pgp-keys, Size: 701 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread
* [GIT PULL] bcachefs fixes for 6.11-rc5
@ 2024-08-23 18:54 Kent Overstreet
  2024-08-24  1:23 ` Linus Torvalds
  0 siblings, 1 reply; 14+ messages in thread
From: Kent Overstreet @ 2024-08-23 18:54 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-bcachefs, linux-fsdevel, linux-kernel

Hi Linus, big one this time...

no more bug reports related to the disk accounting rewrite, things are
looking good over here as far as regressions go

The following changes since commit 0e49d3ff12501adaafaf6fdb19699f021d1eda1c:

  bcachefs: Fix locking in __bch2_trans_mark_dev_sb() (2024-08-16 20:45:15 -0400)

are available in the Git repository at:

  git://evilpiepirate.org/bcachefs.git tags/bcachefs-2024-08-23

for you to fetch changes up to 4d8ead60ffd937a73b50f42f6bd776b6a7919dde:

  bcachefs: key cache can now allocate from pending (2024-08-22 11:51:55 -0400)

----------------------------------------------------------------
bcachefs fixes for 6.11-rc5

Lots of little fixes and two big items, which were orgiinally slated for
the 6.12 merge window but turned out to be pretty important.

The little stuff includes assorted syzbot fixes and some upgrade fixes
for old (pre 1.0) filesystems, and a fix for moving data off a device
that was switched to durability=0 after data had been written to it.

The big items are:
- rhashtable conversion for VFS inodes cache
  Thas was slated for the 6.12 merge window, but a deadlock was
  uncovered in __wait_for_freeing_inode(); bcachefs inverts the usual
  locking between the VFS inode cache and on disk (btree) locking, with
  some advantages and some extra trickyness. The result was that we were
  waiting (via __wait_for_freeing_inode()) on the evict -> clear_inode()
  path with btree locks held, which was a rare deadlock but undoubtedly
  also one of the sources of the SRCU warnings.

- new data structure for managing freelists in btree key cache
  This eliminates the btree key cache lock, and associated lock
  contention. User feedback is that this resolves the main source of the
  SRCU warnings we've been seeing - which means that on some of the big
  multithreaded workloads people are running the lock contention was
  really bad (threads piling up and causing O(n^2) wait times), if it
  was able to trigger a 10 second delay warning.

On the test reported by
https://lore.kernel.org/linux-bcachefs/CAGudoHGenxzk0ZqPXXi1_QDbfqQhGHu+wUwzyS6WmfkUZ1HiXA@mail.gmail.com/

We're now 4x faster than xfs on creatrees, roughly even on walktrees,
with consistent run to run performance; dominant factor in profiles is
lru lock contention.

----------------------------------------------------------------
Kent Overstreet (34):
      bcachefs: Reallocate table when we're increasing size
      bcachefs: fix field-spanning write warning
      bcachefs: Fix incorrect gfp flags
      bcachefs: Extra debug for data move path
      bcachefs: bch2_data_update_init() cleanup
      bcachefs: Fix "trying to move an extent, but nr_replicas=0"
      bcachefs: setting bcachefs_effective.* xattrs is a noop
      bcachefs: Fix failure to relock in btree_node_get()
      bcachefs: Fix bch2_trigger_alloc assert
      bcachefs: Fix bch2_bucket_gens_init()
      bcachefs: fix time_stats_to_text()
      bcachefs: fix missing bch2_err_str()
      bcachefs: unlock_long() before resort in journal replay
      bcachefs: fix failure to relock in bch2_btree_node_mem_alloc()
      bcachefs: fix failure to relock in btree_node_fill()
      bcachefs: Fix locking in bch2_ioc_setlabel()
      bcachefs: Fix replay_now_at() assert
      bcachefs: Fix missing validation in bch2_sb_journal_v2_validate()
      fs/super.c: improve get_tree() error message
      bcachefs: Fix warning in bch2_fs_journal_stop()
      bcachefs: Fix compat issue with old alloc_v4 keys
      bcachefs: Fix refcounting in discard path
      bcachefs: clear path->should_be_locked in bch2_btree_key_cache_drop()
      bcachefs: add missing inode_walker_exit()
      bcachefs: don't use rht_bucket() in btree_key_cache_scan()
      inode: make __iget() a static inline
      bcachefs: switch to rhashtable for vfs inodes hash
      bcachefs: Fix deadlock in __wait_on_freeing_inode()
      bcachefs: journal_entry_replicas_not_marked is now autofix
      lib/generic-radix-tree.c: genradix_ptr_inlined()
      lib/generic-radix-tree.c: add preallocation
      bcachefs: rcu_pending
      bcachefs: Rip out freelists from btree key cache
      bcachefs: key cache can now allocate from pending

Yuesong Li (1):
      bcachefs: Fix double assignment in check_dirent_to_subvol()

 fs/bcachefs/Makefile                      |   1 +
 fs/bcachefs/acl.c                         |   2 +-
 fs/bcachefs/alloc_background.c            |  66 ++--
 fs/bcachefs/alloc_background_format.h     |   1 +
 fs/bcachefs/bcachefs.h                    |   1 +
 fs/bcachefs/btree_cache.c                 |  25 ++
 fs/bcachefs/btree_cache.h                 |   2 +
 fs/bcachefs/btree_iter.h                  |   9 +
 fs/bcachefs/btree_key_cache.c             | 426 ++++++---------------
 fs/bcachefs/btree_key_cache_types.h       |  18 +-
 fs/bcachefs/btree_types.h                 |   3 +-
 fs/bcachefs/btree_update_interior.c       |  46 +--
 fs/bcachefs/buckets_waiting_for_journal.c |   4 +-
 fs/bcachefs/data_update.c                 | 209 ++++++-----
 fs/bcachefs/extents.c                     |   2 +
 fs/bcachefs/fs-io-buffered.c              |   4 +-
 fs/bcachefs/fs-io-direct.c                |   2 +-
 fs/bcachefs/fs-io.c                       |   6 +-
 fs/bcachefs/fs-ioctl.c                    |   7 +-
 fs/bcachefs/fs.c                          | 234 ++++++++----
 fs/bcachefs/fs.h                          |  18 +-
 fs/bcachefs/fsck.c                        |   6 +-
 fs/bcachefs/inode.c                       |   2 +-
 fs/bcachefs/journal.c                     |   2 +-
 fs/bcachefs/journal_sb.c                  |  15 +
 fs/bcachefs/rcu_pending.c                 | 603 ++++++++++++++++++++++++++++++
 fs/bcachefs/rcu_pending.h                 |  25 ++
 fs/bcachefs/recovery.c                    |   9 +-
 fs/bcachefs/replicas.c                    |   3 +-
 fs/bcachefs/sb-errors_format.h            |   2 +-
 fs/bcachefs/subvolume_types.h             |   3 +-
 fs/bcachefs/super.c                       |   2 +
 fs/bcachefs/util.c                        |   1 -
 fs/bcachefs/xattr.c                       |  14 +-
 fs/inode.c                                |   8 -
 fs/super.c                                |   4 +-
 include/linux/fs.h                        |   9 +-
 include/linux/generic-radix-tree.h        | 106 +++++-
 lib/generic-radix-tree.c                  |  80 +---
 39 files changed, 1309 insertions(+), 671 deletions(-)
 create mode 100644 fs/bcachefs/rcu_pending.c
 create mode 100644 fs/bcachefs/rcu_pending.h

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

end of thread, other threads:[~2024-09-06  7:51 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-06  7:50 [GIT PULL] bcachefs fixes for 6.11-rc5 Nathan Owens
  -- strict thread matches above, loose matches on Subject: below --
2024-08-23 18:54 Kent Overstreet
2024-08-24  1:23 ` Linus Torvalds
2024-08-24  2:13   ` Kent Overstreet
2024-08-24  2:25     ` Linus Torvalds
2024-08-24  2:33       ` Kent Overstreet
2024-08-24  2:35         ` Linus Torvalds
2024-08-24  2:40           ` Linus Torvalds
2024-08-24  2:59             ` Kent Overstreet
2024-08-24  4:22               ` Carl E. Thompson
2024-08-24 11:48                 ` Kent Overstreet
2024-08-24  2:47           ` Kent Overstreet
2024-08-24  2:57             ` Linus Torvalds
2024-08-24  3:10               ` Kent Overstreet

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