linux/fs/bcachefs
Kent Overstreet 616928c30f bcachefs: Track maximum transaction memory
This patch
 - tracks maximum bch2_trans_kmalloc() memory used in btree_transaction_stats
 - makes it available in debugfs
 - switches bch2_trans_init() to using that for the amount of memory to
   preallocate, instead of the parameter passed in

This drastically reduces transaction restarts, and means we no longer
need to track this in the source code.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-22 17:09:39 -04:00
..
acl.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
acl.h bcachefs: Plumb through subvolume id 2023-10-22 17:09:12 -04:00
alloc_background.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
alloc_background.h bcachefs: Fix should_invalidate_buckets() 2023-10-22 17:09:36 -04:00
alloc_foreground.c bcachefs: bch2_bucket_alloc_trans_early -> for_each_btree_key_norestart 2023-10-22 17:09:37 -04:00
alloc_foreground.h bcachefs: Kill allocator threads & freelists 2023-10-22 17:09:29 -04:00
alloc_types.h bcachefs: Fold bucket_state in to BCH_DATA_TYPES() 2023-10-22 17:09:30 -04:00
bcachefs.h bcachefs: Track maximum transaction memory 2023-10-22 17:09:39 -04:00
bcachefs_format.h bcachefs: Add a persistent counter for bucket discards 2023-10-22 17:09:33 -04:00
bcachefs_ioctl.h bcachefs: Fold bucket_state in to BCH_DATA_TYPES() 2023-10-22 17:09:30 -04:00
bkey.c bcachefs: bch2_bkey_packed_to_binary_text() 2023-10-22 17:09:38 -04:00
bkey.h bcachefs: bch2_bkey_packed_to_binary_text() 2023-10-22 17:09:38 -04:00
bkey_buf.h bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
bkey_methods.c bcachefs: Improve an error message 2023-10-22 17:09:34 -04:00
bkey_methods.h bcachefs: Plumb btree_id & level to trans_mark 2023-10-22 17:09:32 -04:00
bkey_sort.c bcachefs: Don't call bch2_bkey_transform() unnecessarily 2023-10-22 17:09:19 -04:00
bkey_sort.h bcachefs: Kill bch2_sort_repack_merge() 2023-10-22 17:09:19 -04:00
bset.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
bset.h bcachefs: Kill bch2_bset_fix_invalidated_key() 2023-10-22 17:09:21 -04:00
btree_cache.c bcachefs: Tracepoint improvements 2023-10-22 17:09:38 -04:00
btree_cache.h bcachefs: Fix usage of six lock's percpu mode 2023-10-22 17:09:26 -04:00
btree_gc.c bcachefs: Convert fsck errors to errcode.h 2023-10-22 17:09:37 -04:00
btree_gc.h bcachefs: Fix a null ptr deref 2023-10-22 17:09:31 -04:00
btree_io.c bcachefs: Always rebuild aux search trees when node boundaries change 2023-10-22 17:09:38 -04:00
btree_io.h bcachefs: Shutdown path improvements 2023-10-22 17:09:32 -04:00
btree_iter.c bcachefs: Track maximum transaction memory 2023-10-22 17:09:39 -04:00
btree_iter.h bcachefs: Track maximum transaction memory 2023-10-22 17:09:39 -04:00
btree_key_cache.c bcachefs: Fix assertion in bch2_btree_key_cache_drop() 2023-10-22 17:09:38 -04:00
btree_key_cache.h bcachefs: Btree key cache coherency 2023-10-22 17:09:23 -04:00
btree_locking.c six locks: Improve six_lock_count 2023-10-22 17:09:39 -04:00
btree_locking.h bcachefs: Kill nodes_intent_locked 2023-10-22 17:09:39 -04:00
btree_types.h bcachefs: Track maximum transaction memory 2023-10-22 17:09:39 -04:00
btree_update.h bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
btree_update_interior.c bcachefs: Add assertions for unexpected transaction restarts 2023-10-22 17:09:38 -04:00
btree_update_interior.h bcachefs: Shutdown path improvements 2023-10-22 17:09:32 -04:00
btree_update_leaf.c bcachefs: Better use of locking helpers 2023-10-22 17:09:39 -04:00
buckets.c bcachefs: bch2_trans_run() 2023-10-22 17:09:36 -04:00
buckets.h bcachefs: fix __dev_available(). 2023-10-22 17:09:34 -04:00
buckets_types.h bcachefs: Fold bucket_state in to BCH_DATA_TYPES() 2023-10-22 17:09:30 -04:00
buckets_waiting_for_journal.c bcachefs: New data structure for buckets waiting on journal commit 2023-10-22 17:09:22 -04:00
buckets_waiting_for_journal.h bcachefs: New data structure for buckets waiting on journal commit 2023-10-22 17:09:22 -04:00
buckets_waiting_for_journal_types.h bcachefs: New data structure for buckets waiting on journal commit 2023-10-22 17:09:22 -04:00
chardev.c bcachefs: Fold bucket_state in to BCH_DATA_TYPES() 2023-10-22 17:09:30 -04:00
chardev.h
checksum.c bcachefs: Use bch2_err_str() in error messages 2023-10-22 17:09:36 -04:00
checksum.h bcachefs: Check for errors from crypto_skcipher_encrypt() 2023-10-22 17:09:24 -04:00
clock.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
clock.h bcachefs: Convert various code to printbuf 2023-10-22 17:08:43 -04:00
clock_types.h bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
compress.c bcachefs: Turn encoded_extent_max into a regular option 2023-10-22 17:09:19 -04:00
compress.h
counters.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
counters.h bcachefs: Add persistent counters 2023-10-22 17:09:32 -04:00
darray.h bcachefs: darrays 2023-10-22 17:09:28 -04:00
data_update.c bcachefs: fsck: Another transaction restart handling fix 2023-10-22 17:09:39 -04:00
data_update.h bcachefs: Redo data_update interface 2023-10-22 17:09:34 -04:00
debug.c bcachefs: Track maximum transaction memory 2023-10-22 17:09:39 -04:00
debug.h bcachefs: Update bch2_btree_verify() 2023-10-22 17:09:01 -04:00
dirent.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
dirent.h bcachefs: Add rw to .key_invalid() 2023-10-22 17:09:30 -04:00
disk_groups.c bcachefs: Fix adding a device with a label 2023-10-22 17:09:39 -04:00
disk_groups.h bcachefs: Fix adding a device with a label 2023-10-22 17:09:39 -04:00
ec.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
ec.h bcachefs: Pull out data_update.c 2023-10-22 17:09:34 -04:00
ec_types.h bcachefs: Split out struct gc_stripe from struct stripe 2023-10-22 17:09:18 -04:00
errcode.c bcachefs: Improved errcodes 2023-10-22 17:09:36 -04:00
errcode.h bcachefs: BTREE_ITER_NO_NODE -> BCH_ERR codes 2023-10-22 17:09:37 -04:00
error.c bcachefs: Convert fsck errors to errcode.h 2023-10-22 17:09:37 -04:00
error.h bcachefs: Convert fsck errors to errcode.h 2023-10-22 17:09:37 -04:00
extent_update.c bcachefs: Freespace, need_discard btrees 2023-10-22 17:09:29 -04:00
extent_update.h bcachefs: Reduce iter->trans usage 2023-10-22 17:09:10 -04:00
extents.c bcachefs: Redo data_update interface 2023-10-22 17:09:34 -04:00
extents.h bcachefs: Redo data_update interface 2023-10-22 17:09:34 -04:00
extents_types.h
eytzinger.h bcachefs: Make eytzinger size parameter more conventional 2023-10-22 17:09:21 -04:00
fifo.h
fs-common.c bcachefs: Don't BUG_ON() inode link count underflow 2023-10-22 17:09:34 -04:00
fs-common.h bcachefs: Add BCH_SUBVOLUME_UNLINKED 2023-10-22 17:09:15 -04:00
fs-io.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
fs-io.h bcachefs: Delete bch_writepage 2023-10-22 17:09:32 -04:00
fs-ioctl.c bcachefs: Add BCH_SUBVOLUME_UNLINKED 2023-10-22 17:09:15 -04:00
fs-ioctl.h
fs.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
fs.h bcachefs: darrays 2023-10-22 17:09:28 -04:00
fsck.c bcachefs: fsck: Another transaction restart handling fix 2023-10-22 17:09:39 -04:00
fsck.h bcachefs: Drop bch2_fsck_inode_nlink() 2023-10-22 17:08:59 -04:00
inode.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
inode.h bcachefs: Don't BUG_ON() inode link count underflow 2023-10-22 17:09:34 -04:00
io.c bcachefs: Improve an error message 2023-10-22 17:09:37 -04:00
io.h bcachefs: Run btree updates after write out of write_point 2023-10-22 17:09:29 -04:00
io_types.h bcachefs: Run btree updates after write out of write_point 2023-10-22 17:09:29 -04:00
journal.c bcachefs: bch2_trans_run() 2023-10-22 17:09:36 -04:00
journal.h bcachefs: Refactor journal entry adding 2023-10-22 17:09:33 -04:00
journal_io.c bcachefs: Convert fsck errors to errcode.h 2023-10-22 17:09:37 -04:00
journal_io.h bcachefs: Use a genradix for reading journal entries 2023-10-22 17:09:30 -04:00
journal_reclaim.c bcachefs: Use bch2_err_str() in error messages 2023-10-22 17:09:36 -04:00
journal_reclaim.h bcachefs: Make sure to initialize j->last_flushed 2023-10-22 17:09:02 -04:00
journal_sb.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
journal_sb.h bcachefs: bch_sb_field_journal_v2 2023-10-22 17:09:29 -04:00
journal_seq_blacklist.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
journal_seq_blacklist.h Revert "bcachefs: Delete some obsolete journal_seq_blacklist code" 2023-10-22 17:09:21 -04:00
journal_types.h bcachefs: Introduce a separate journal watermark for copygc 2023-10-22 17:09:29 -04:00
Kconfig bcachefs: Improved errcodes 2023-10-22 17:09:36 -04:00
keylist.c bcachefs: Fix bch2_verify_keylist_sorted 2023-10-22 17:09:02 -04:00
keylist.h bcachefs: Interior btree updates are now fully transactional 2023-10-22 17:08:40 -04:00
keylist_types.h
lru.c bcachefs: Convert bch2_check_lrus() to for_each_btree_key_commit() 2023-10-22 17:09:36 -04:00
lru.h bcachefs: LRU repair tweaks 2023-10-22 17:09:32 -04:00
Makefile bcachefs: btree_locking.c 2023-10-22 17:09:39 -04:00
migrate.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
migrate.h
move.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
move.h bcachefs: move.c refactoring 2023-10-22 17:09:35 -04:00
move_types.h bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
movinggc.c bcachefs: Use bch2_err_str() in error messages 2023-10-22 17:09:36 -04:00
movinggc.h bcachefs: Improve bucket_alloc_fail tracepoint 2023-10-22 17:09:36 -04:00
opts.c bcachefs: Improve an error message 2023-10-22 17:09:34 -04:00
opts.h bcachefs: Add an O_DIRECT option (for userspace) 2023-10-22 17:09:37 -04:00
printbuf.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
printbuf.h bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
quota.c bcachefs: Use bch2_err_str() in error messages 2023-10-22 17:09:36 -04:00
quota.h bcachefs: Add rw to .key_invalid() 2023-10-22 17:09:30 -04:00
quota_types.h
rebalance.c bcachefs: Use bch2_err_str() in error messages 2023-10-22 17:09:36 -04:00
rebalance.h bcachefs: Convert various code to printbuf 2023-10-22 17:08:43 -04:00
rebalance_types.h bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
recovery.c bcachefs: Convert fsck errors to errcode.h 2023-10-22 17:09:37 -04:00
recovery.h bcachefs: Fix btree_and_journal_iter 2023-10-22 17:09:33 -04:00
reflink.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
reflink.h bcachefs: Plumb btree_id & level to trans_mark 2023-10-22 17:09:32 -04:00
replicas.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
replicas.h bcachefs: Add .to_text() methods for all superblock sections 2023-10-22 17:09:24 -04:00
replicas_types.h
siphash.c
siphash.h
six.c six locks: Improve six_lock_count 2023-10-22 17:09:39 -04:00
six.h six locks: Improve six_lock_count 2023-10-22 17:09:39 -04:00
str_hash.h bcachefs: bch2_btree_iter_peek_upto() 2023-10-22 17:09:27 -04:00
subvolume.c bcachefs: Fix bch2_fs_check_snapshots() 2023-10-22 17:09:38 -04:00
subvolume.h bcachefs: Improve snapshots_seen 2023-10-22 17:09:35 -04:00
subvolume_types.h bcachefs: darrays 2023-10-22 17:09:28 -04:00
super-io.c bcachefs: Printbuf rework 2023-10-22 17:09:33 -04:00
super-io.h bcachefs: Freespace, need_discard btrees 2023-10-22 17:09:29 -04:00
super.c bcachefs: Fix adding a device with a label 2023-10-22 17:09:39 -04:00
super.h bcachefs: Fix assertion in bch2_dev_list_add_dev() 2023-10-22 17:09:34 -04:00
super_types.h bcachefs: Freespace, need_discard btrees 2023-10-22 17:09:29 -04:00
sysfs.c bcachefs: Always use percpu_ref_tryget_live() on c->writes 2023-10-22 17:09:34 -04:00
sysfs.h bcachefs: Add persistent counters 2023-10-22 17:09:32 -04:00
tests.c bcachefs: Unit test updates 2023-10-22 17:09:37 -04:00
tests.h bcachefs: Add error handling to unit & perf tests 2023-10-22 17:08:48 -04:00
trace.c bcachefs: Tracepoint improvements 2023-10-22 17:09:38 -04:00
trace.h six locks: Improve six_lock_count 2023-10-22 17:09:39 -04:00
util.c bcachefs: bch2_bkey_packed_to_binary_text() 2023-10-22 17:09:38 -04:00
util.h bcachefs: bch2_bkey_packed_to_binary_text() 2023-10-22 17:09:38 -04:00
varint.c bcachefs: Add a valgrind memcheck hint 2023-10-22 17:09:13 -04:00
varint.h bcachefs: Add safe versions of varint encode/decode 2023-10-22 17:09:08 -04:00
vstructs.h bcachefs: Fix 32 bit build 2023-10-22 17:09:25 -04:00
xattr.c bcachefs: EINTR -> BCH_ERR_transaction_restart 2023-10-22 17:09:37 -04:00
xattr.h bcachefs: Add rw to .key_invalid() 2023-10-22 17:09:30 -04:00