kernel-hacking-2024-linux-s.../fs/bcachefs
Kent Overstreet ec4edd7b9d bcachefs: Prep work for variable size btree node buffers
bcachefs btree nodes are big - typically 256k - and btree roots are
pinned in memory. As we're now up to 18 btrees, we now have significant
memory overhead in mostly empty btree roots.

And in the future we're going to start enforcing that certain btree node
boundaries exist, to solve lock contention issues - analagous to XFS's
AGIs.

Thus, we need to start allocating smaller btree node buffers when we
can. This patch changes code that refers to the filesystem constant
c->opts.btree_node_size to refer to the btree node buffer size -
btree_buf_bytes() - where appropriate.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2024-01-21 13:27:10 -05:00
..
acl.c bcachefs: make RO snapshots actually RO 2024-01-01 11:47:07 -05:00
acl.h
alloc_background.c bcachefs: Avoid flushing the journal in the discard path 2024-01-21 13:27:09 -05:00
alloc_background.h bcachefs: Combine .trans_trigger, .atomic_trigger 2024-01-05 23:24:20 -05:00
alloc_foreground.c bcachefs: helpers for printing data types 2024-01-21 06:01:45 -05:00
alloc_foreground.h
alloc_types.h
backpointers.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
backpointers.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
bbpos.h
bbpos_types.h
bcachefs.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
bcachefs_format.h bcachefs: Upgrades now specify errors to fix, like downgrades 2024-01-05 23:24:20 -05:00
bcachefs_ioctl.h bcachefs: Replace zero-length array with flex-array member and use __counted_by 2024-01-01 11:47:41 -05:00
bkey.c bcachefs: Improve move_extent tracepoint 2024-01-21 13:27:09 -05:00
bkey.h bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bkey_buf.h
bkey_cmp.h
bkey_methods.c bcachefs: Add .val_to_text() for KEY_TYPE_cookie 2024-01-21 13:27:09 -05:00
bkey_methods.h bcachefs: BTREE_TRIGGER_ATOMIC 2024-01-21 06:01:45 -05:00
bkey_sort.c bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bkey_sort.h
bset.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
bset.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_cache.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_cache.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_gc.c bcachefs: bch_fs_usage_base 2024-01-21 06:01:45 -05:00
btree_gc.h
btree_io.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_io.h bcachefs: Include btree_trans in more tracepoints 2024-01-01 11:47:40 -05:00
btree_iter.c bcachefs: Improve trace_trans_restart_relock 2024-01-21 13:27:10 -05:00
btree_iter.h bcachefs: Fix excess transaction restarts in __bchfs_fallocate() 2024-01-21 13:27:10 -05:00
btree_journal_iter.c bcachefs: __journal_keys_sort() refactoring 2024-01-05 23:24:19 -05:00
btree_journal_iter.h bcachefs: Proper refcounting for journal_keys 2023-11-24 02:43:12 -05:00
btree_key_cache.c bcachefs: trans_for_each_path() no longer uses path->idx 2024-01-01 11:47:43 -05:00
btree_key_cache.h bcachefs; kill bch2_btree_key_cache_flush() 2024-01-01 11:47:41 -05:00
btree_key_cache_types.h bcachefs: Run btree key cache shrinker less aggressively 2023-11-13 21:45:01 -05:00
btree_locking.c bcachefs: Improve trace_trans_restart_relock 2024-01-21 13:27:10 -05:00
btree_locking.h bcachefs: Improve trace_trans_restart_relock 2024-01-21 13:27:10 -05:00
btree_trans_commit.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_types.h bcachefs: Improve trace_trans_restart_relock 2024-01-21 13:27:10 -05:00
btree_update.c bcachefs: btree_trans always has stats 2024-01-05 23:24:19 -05:00
btree_update.h bcachefs: Clean up btree_trans 2024-01-01 11:47:44 -05:00
btree_update_interior.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_update_interior.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_write_buffer.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_write_buffer.h bcachefs: __bch2_journal_key_to_wb -> bch2_journal_key_to_wb_slowpath 2024-01-05 23:24:19 -05:00
btree_write_buffer_types.h bcachefs: Inline btree write buffer sort 2024-01-01 11:47:41 -05:00
buckets.c bcachefs: bch2_trans_account_disk_usage_change() 2024-01-21 06:01:45 -05:00
buckets.h bcachefs: bch2_trans_account_disk_usage_change() 2024-01-21 06:01:45 -05:00
buckets_types.h bcachefs: bch_fs_usage_base 2024-01-21 06:01:45 -05:00
buckets_waiting_for_journal.c
buckets_waiting_for_journal.h
buckets_waiting_for_journal_types.h
chardev.c bcachefs: Online fsck can now fix errors 2024-01-05 23:24:20 -05:00
chardev.h
checksum.c
checksum.h bcachefs: improve checksum error messages 2024-01-05 23:24:21 -05:00
clock.c bcachefs: bch2_kthread_io_clock_wait() no longer sleeps until full amount 2024-01-21 13:27:09 -05:00
clock.h
clock_types.h
compress.c bcachefs: Remove obsolete comment about zstd 2024-01-01 11:47:40 -05:00
compress.h bcachefs: bch2_prt_compression_type() 2024-01-21 06:01:45 -05:00
counters.c
counters.h
darray.c bcachefs: DARRAY_PREALLOCATED() 2024-01-01 11:46:52 -05:00
darray.h bcachefs: Convert split_devs() to darray 2024-01-01 11:47:43 -05:00
data_update.c bcachefs: bkey_for_each_ptr() now declares loop iter 2024-01-01 11:47:43 -05:00
data_update.h bcachefs: Data update path won't accidentaly grow replicas 2023-11-25 21:48:42 -05:00
debug.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
debug.h
dirent.c bcachefs: Fix reattach_inode() for snapshots 2024-01-01 11:47:44 -05:00
dirent.h bcachefs: Fix reattach_inode() for snapshots 2024-01-01 11:47:44 -05:00
disk_groups.c bcachefs: %pg is banished 2024-01-05 23:24:21 -05:00
disk_groups.h
disk_groups_types.h
ec.c bcachefs: helpers for printing data types 2024-01-21 06:01:45 -05:00
ec.h bcachefs: Combine .trans_trigger, .atomic_trigger 2024-01-05 23:24:20 -05:00
ec_types.h bcachefs: Rename bch_replicas_entry -> bch_replicas_entry_v1 2024-01-01 11:47:38 -05:00
errcode.c
errcode.h bcachefs: Split brain detection 2024-01-05 23:24:19 -05:00
error.c bcachefs: Don't autofix errors we can't fix 2024-01-05 23:24:20 -05:00
error.h bcachefs: fix BCH_FSCK_ERR enum 2023-12-19 19:01:52 -05:00
extent_update.c bcachefs: growable btree_paths 2024-01-01 11:47:44 -05:00
extent_update.h
extents.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
extents.h bcachefs: Combine .trans_trigger, .atomic_trigger 2024-01-05 23:24:20 -05:00
extents_types.h
eytzinger.h bcachefs: eytzinger_for_each() declares loop iter 2024-01-21 06:01:45 -05:00
fifo.h
fs-common.c bcachefs: fsck_err()s don't need to manually check c->sb.version anymore 2024-01-05 23:24:21 -05:00
fs-common.h
fs-io-buffered.c bcachefs: Kill GFP_NOFAIL usage in readahead path 2024-01-01 11:47:43 -05:00
fs-io-buffered.h
fs-io-direct.c bcachefs: bios must be 512 byte algined 2024-01-21 13:27:10 -05:00
fs-io-direct.h
fs-io-pagecache.c bcachefs: Fix excess transaction restarts in __bchfs_fallocate() 2024-01-21 13:27:10 -05:00
fs-io-pagecache.h bcachefs: Fix excess transaction restarts in __bchfs_fallocate() 2024-01-21 13:27:10 -05:00
fs-io.c bcachefs: Fix excess transaction restarts in __bchfs_fallocate() 2024-01-21 13:27:10 -05:00
fs-io.h
fs-ioctl.c bcachefs: grab s_umount only if snapshotting 2024-01-21 13:27:10 -05:00
fs-ioctl.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs.c bcachefs: Fix nochanges/read_only interaction 2024-01-05 23:24:19 -05:00
fs.h bcachefs: kill INODE_LOCK, use lock_two_nondirectories() 2024-01-01 11:47:36 -05:00
fsck.c bcachefs: fsck_err()s don't need to manually check c->sb.version anymore 2024-01-05 23:24:21 -05:00
fsck.h
inode.c bcachefs: bch_fs_usage_base 2024-01-21 06:01:45 -05:00
inode.h bcachefs: Combine .trans_trigger, .atomic_trigger 2024-01-05 23:24:20 -05:00
io_misc.c bcachefs: bkey_for_each_ptr() now declares loop iter 2024-01-01 11:47:43 -05:00
io_misc.h
io_read.c bcachefs: improve checksum error messages 2024-01-05 23:24:21 -05:00
io_read.h
io_write.c bcachefs: Don't log errors if BCH_WRITE_ALLOC_NOWAIT 2024-01-21 06:01:45 -05:00
io_write.h closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
io_write_types.h
journal.c bcachefs: Better journal tracepoints 2024-01-21 13:27:09 -05:00
journal.h bcachefs: vstruct_for_each() now declares loop iter 2024-01-01 11:47:42 -05:00
journal_io.c bcachefs: helpers for printing data types 2024-01-21 06:01:45 -05:00
journal_io.h closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
journal_reclaim.c bcachefs: for_each_member_device_rcu() now declares loop iter 2024-01-01 11:47:42 -05:00
journal_reclaim.h bcachefs: btree write buffer now slurps keys from journal 2024-01-01 11:47:41 -05:00
journal_sb.c
journal_sb.h
journal_seq_blacklist.c bcachefs: convert bch_fs_flags to x-macro 2024-01-01 11:47:38 -05:00
journal_seq_blacklist.h
journal_types.h bcachefs: btree write buffer now slurps keys from journal 2024-01-01 11:47:41 -05:00
Kconfig bcachefs: optimize __bch2_trans_get(), kill DEBUG_TRANSACTIONS 2024-01-01 11:47:44 -05:00
keylist.c bcachefs: for_each_keylist_key() declares loop iter 2024-01-01 11:47:43 -05:00
keylist.h bcachefs: for_each_keylist_key() declares loop iter 2024-01-01 11:47:43 -05:00
keylist_types.h
logged_ops.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
logged_ops.h
lru.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
lru.h
Makefile bcachefs: factor out thread_with_file, thread_with_stdio 2024-01-05 23:24:19 -05:00
mean_and_variance.c bcachefs: mean and variance: fix kernel-doc for function params 2024-01-01 11:47:42 -05:00
mean_and_variance.h bcachefs: Fixes for rust bindgen 2024-01-01 11:47:42 -05:00
mean_and_variance_test.c
migrate.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
migrate.h
move.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
move.h bcachefs: rebalance should wakeup on shutdown if disabled 2024-01-01 11:47:39 -05:00
move_types.h
movinggc.c bcachefs: for_each_member_device() now declares loop iter 2024-01-01 11:47:42 -05:00
movinggc.h
nocow_locking.c
nocow_locking.h
nocow_locking_types.h
opts.c bcachefs: bch2_prt_compression_type() 2024-01-21 06:01:45 -05:00
opts.h bcachefs: bch2_prt_compression_type() 2024-01-21 06:01:45 -05:00
printbuf.c bcachefs: prt_bitflags_vector() 2024-01-01 11:47:07 -05:00
printbuf.h bcachefs: prt_bitflags_vector() 2024-01-01 11:47:07 -05:00
quota.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
quota.h
quota_types.h
rebalance.c bcachefs: remove redundant variable tmp 2024-01-21 13:27:10 -05:00
rebalance.h
rebalance_types.h
recovery.c bcachefs: bch_fs_usage_base 2024-01-21 06:01:45 -05:00
recovery.h bcachefs: bch2_run_online_recovery_passes() 2024-01-01 11:47:40 -05:00
recovery_types.h bcachefs: check_directory_structure() can now be run online 2024-01-01 11:47:44 -05:00
reflink.c bcachefs: Reduce would_deadlock restarts 2024-01-21 06:01:45 -05:00
reflink.h bcachefs: BTREE_TRIGGER_ATOMIC 2024-01-21 06:01:45 -05:00
replicas.c bcachefs: Don't pass memcmp() as a pointer 2024-01-21 13:27:04 -05:00
replicas.h bcachefs: Rename bch_replicas_entry -> bch_replicas_entry_v1 2024-01-01 11:47:38 -05:00
replicas_types.h bcachefs: Replace zero-length arrays with flexible-array members 2024-01-01 11:47:39 -05:00
sb-clean.c bcachefs: bch_fs_usage_base 2024-01-21 06:01:45 -05:00
sb-clean.h
sb-downgrade.c bcachefs: fsck_err()s don't need to manually check c->sb.version anymore 2024-01-05 23:24:21 -05:00
sb-downgrade.h bcachefs: Upgrades now specify errors to fix, like downgrades 2024-01-05 23:24:20 -05:00
sb-errors.c bcachefs: bch_sb_field_downgrade 2024-01-01 11:47:07 -05:00
sb-errors.h bcachefs: bch_sb.recovery_passes_required 2024-01-01 11:47:07 -05:00
sb-errors_types.h bcachefs: fsck_err()s don't need to manually check c->sb.version anymore 2024-01-05 23:24:21 -05:00
sb-members.c bcachefs: helpers for printing data types 2024-01-21 06:01:45 -05:00
sb-members.h bcachefs: for_each_member_device_rcu() now declares loop iter 2024-01-01 11:47:42 -05:00
seqmutex.h
siphash.c
siphash.h
six.c bcachefs: six locks: Simplify optimistic spinning 2024-01-01 11:47:38 -05:00
six.h bcachefs: six lock: fix typos 2024-01-01 11:47:40 -05:00
snapshot.c bcachefs: kvfree bch_fs::snapshots in bch2_fs_snapshots_exit 2024-01-21 13:27:10 -05:00
snapshot.h bcachefs: Combine .trans_trigger, .atomic_trigger 2024-01-05 23:24:20 -05:00
str_hash.h bcachefs: bch_str_hash_flags_t 2024-01-01 11:47:37 -05:00
subvolume.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
subvolume.h bcachefs: make RO snapshots actually RO 2024-01-01 11:47:07 -05:00
subvolume_types.h bcachefs: Fixes for rust bindgen 2024-01-01 11:47:42 -05:00
super-io.c bcachefs: Print size of superblock with space allocated 2024-01-21 13:27:09 -05:00
super-io.h bcachefs: __bch2_sb_field_to_text() 2024-01-05 23:24:21 -05:00
super.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
super.h bcachefs: convert bch_fs_flags to x-macro 2024-01-01 11:47:38 -05:00
super_types.h bcachefs: simplify bch_devs_list 2024-01-01 11:47:42 -05:00
sysfs.c bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
sysfs.h
tests.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
tests.h
thread_with_file.c bcachefs: no thread_with_file in userspace 2024-01-05 23:24:20 -05:00
thread_with_file.h bcachefs: factor out thread_with_file, thread_with_stdio 2024-01-05 23:24:19 -05:00
thread_with_file_types.h bcachefs: factor out thread_with_file, thread_with_stdio 2024-01-05 23:24:19 -05:00
trace.c
trace.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
two_state_shared_lock.c
two_state_shared_lock.h
util.c bcachefs: Improve move_extent tracepoint 2024-01-21 13:27:09 -05:00
util.h bcachefs: Improve move_extent tracepoint 2024-01-21 13:27:09 -05:00
varint.c
varint.h
vstructs.h bcachefs: vstruct_for_each() now declares loop iter 2024-01-01 11:47:42 -05:00
xattr.c bcachefs: make RO snapshots actually RO 2024-01-01 11:47:07 -05:00
xattr.h