|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1 |
|
| #
955ba7b5 |
| 31-Mar-2025 |
Kent Overstreet <[email protected]> |
bcachefs: bch_dev_usage_full
All the fastpaths that need device usage don't need the sector totals or fragmentation, just bucket counts.
Split bch_dev_usage up into two different versions, the norm
bcachefs: bch_dev_usage_full
All the fastpaths that need device usage don't need the sector totals or fragmentation, just bucket counts.
Split bch_dev_usage up into two different versions, the normal one with just bucket counts.
This is also a stack usage improvement, since we have a bch_dev_usage on the stack in the allocation path.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
|
Revision tags: v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2 |
|
| #
34a49308 |
| 07-Feb-2025 |
Kent Overstreet <[email protected]> |
bcachefs: bch2_bkey_ptr_data_type() now correctly returns cached for cached ptrs
Necessary for adding backpointers for cached pointers.
Signed-off-by: Kent Overstreet <[email protected]>
|
|
Revision tags: v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1 |
|
| #
2cd85fea |
| 29-Nov-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Don't recurse in check_discard_freespace_key
When calling check_discard_freeespace_key from the allocator, we can't repair without recursing - run it asynchronously instead.
Signed-off-by
bcachefs: Don't recurse in check_discard_freespace_key
When calling check_discard_freeespace_key from the allocator, we can't repair without recursing - run it asynchronously instead.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
a6f4794f |
| 27-Nov-2024 |
Kent Overstreet <[email protected]> |
bcachefs: struct bkey_validate_context
Add a new parameter to bkey validate functions, and use it to improve invalid bkey error messages: we can now print the btree and depth it came from, or if it
bcachefs: struct bkey_validate_context
Add a new parameter to bkey validate functions, and use it to improve invalid bkey error messages: we can now print the btree and depth it came from, or if it came from the journal, or is a btree root.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
|
Revision tags: v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5 |
|
| #
c97118f1 |
| 27-Oct-2024 |
Kent Overstreet <[email protected]> |
bcachefs: try_alloc_bucket() now uses bch2_check_discard_freespace_key()
check_discard_freespace_key() was doing all the same checks as try_alloc_bucket(), but with repair.
Signed-off-by: Kent Over
bcachefs: try_alloc_bucket() now uses bch2_check_discard_freespace_key()
check_discard_freespace_key() was doing all the same checks as try_alloc_bucket(), but with repair.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
5c41f75d |
| 21-Oct-2024 |
Jeongjun Park <[email protected]> |
bcachefs: fix shift oob in alloc_lru_idx_fragmentation
The size of a.data_type is set abnormally large, causing shift-out-of-bounds. To fix this, we need to add validation on a.data_type in alloc_lr
bcachefs: fix shift oob in alloc_lru_idx_fragmentation
The size of a.data_type is set abnormally large, causing shift-out-of-bounds. To fix this, we need to add validation on a.data_type in alloc_lru_idx_fragmentation().
Reported-by: [email protected] Fixes: 260af1562ec1 ("bcachefs: Kill alloc_v4.fragmentation_lru") Signed-off-by: Jeongjun Park <[email protected]> Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7 |
|
| #
805ddc20 |
| 01-Sep-2024 |
Kent Overstreet <[email protected]> |
bcachefs: bch2_dev_rcu_noerror()
bch2_dev_rcu() now properly errors if the device is invalid
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
6b812f1d |
| 01-Sep-2024 |
Kent Overstreet <[email protected]> |
bcachefs: bch2_dev_remove_alloc() -> alloc_background.c
Signed-off-by: Kent Overstreet <[email protected]>
|
|
Revision tags: v6.11-rc6, v6.11-rc5, v6.11-rc4 |
|
| #
9482f3b0 |
| 16-Aug-2024 |
Kent Overstreet <[email protected]> |
bcachefs: avoid overflowing LRU_TIME_BITS for cached data lru
Reported-by: [email protected] Signed-off-by: Kent Overstreet <[email protected]>
|
| #
d97de0d0 |
| 13-Aug-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Make bkey_fsck_err() a wrapper around fsck_err()
bkey_fsck_err() was added as an interface that looks like fsck_err(), but previously all it did was ensure that the appropriate error count
bcachefs: Make bkey_fsck_err() a wrapper around fsck_err()
bkey_fsck_err() was added as an interface that looks like fsck_err(), but previously all it did was ensure that the appropriate error counter was incremented in the superblock.
This is a cleanup and bugfix patch that converts it to a wrapper around fsck_err(). This is needed to fix an issue with the upgrade path to disk_accounting_v3, where the "silent fix" error list now includes bkey_fsck errors; fsck_err() handles this in a unified way, and since we need to change printing of bkey fsck errors from the caller to the inner bkey_fsck_err() calls, this ends up being a pretty big change.
Als,, rename .invalid() methods to .validate(), for clarity, while we're changing the function signature anyways (to drop the printbuf argument).
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc3, v6.11-rc2 |
|
| #
90b211fa |
| 31-Jul-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Add a comment for bucket helper types
We've had bugs in the past with incorrect integer conversions in disk accounting code, which is why bucket helpers now always return s64s; add a comme
bcachefs: Add a comment for bucket helper types
We've had bugs in the past with incorrect integer conversions in disk accounting code, which is why bucket helpers now always return s64s; add a comment explaining this.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
7442b5cd |
| 31-Jul-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Don't rely on implicit unsigned -> signed integer conversion
implicit integer conversion is a fertile source of bugs, and we really would rather not have the min()/max() macros doing it im
bcachefs: Don't rely on implicit unsigned -> signed integer conversion
implicit integer conversion is a fertile source of bugs, and we really would rather not have the min()/max() macros doing it implicitly. bcachefs appears to be the only place in the kernel where this happens, so let's fix it.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6 |
|
| #
e0d5bc6a |
| 23-Jun-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Fix missing BTREE_TRIGGER_bucket_invalidate flag
This fixes an accounting mismatch for cached data.
Signed-off-by: Kent Overstreet <[email protected]>
|
|
Revision tags: v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7, v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1 |
|
| #
1d16c605 |
| 09-Nov-2023 |
Kent Overstreet <[email protected]> |
bcachefs: Disk space accounting rewrite
Main part of the disk accounting rewrite.
This is a wholesale rewrite of the existing disk space accounting, which relies on percepu counters that are sharde
bcachefs: Disk space accounting rewrite
Main part of the disk accounting rewrite.
This is a wholesale rewrite of the existing disk space accounting, which relies on percepu counters that are sharded by journal buffer, and rolled up and added to each journal write.
With the new scheme, every set of counters is a distinct key in the accounting btree; this fixes scaling limitations of the old scheme, where counters took up space in each journal entry and required multiple percpu counters.
Now, in memory accounting requires a single set of percpu counters - not multiple for each in flight journal buffer - and in the future we'll probably also have counters that don't use in memory percpu counters, they're not strictly required.
An accounting update is now a normal btree update, using the btree write buffer path. At transaction commit time, we apply accounting updates to the in memory counters, which are percpu counters indexed in an eytzinger tree by the accounting key.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
2612e291 |
| 23-Nov-2023 |
Kent Overstreet <[email protected]> |
bcachefs: BCH_DATA_unstriped
Add a new pseudo data type, to track buckets that are members of a stripe, but have unstriped data in them.
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
55f7962d |
| 23-Nov-2023 |
Kent Overstreet <[email protected]> |
bcachefs: bch_alloc->stripe_sectors
Add a separate counter to bch_alloc_v4 for amount of striped data; this lets us separately track striped and unstriped data in a bucket, which lets us see when er
bcachefs: bch_alloc->stripe_sectors
Add a separate counter to bch_alloc_v4 for amount of striped data; this lets us separately track striped and unstriped data in a bucket, which lets us see when erasure coding has failed to update extents with stripe pointers, and also find buckets to continue updating if we crash mid way through creating a new stripe.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
64ee1431 |
| 23-Jun-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Discard, invalidate workers are now per device
There's no reason for discards to be single threaded across all devices; this will improve performance on multi device setups.
Additionally,
bcachefs: Discard, invalidate workers are now per device
There's no reason for discards to be single threaded across all devices; this will improve performance on multi device setups.
Additionally, making them per-device simplifies the refcounting on bch_dev->io_ref; we now hold it for the duration that the discard path is running, which fixes a race between the discard path and device removal.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
cff07e27 |
| 17-Jun-2024 |
Kent Overstreet <[email protected]> |
bcachefs: Guard against overflowing LRU_TIME_BITS
LRUs only have 48 bits for the time field (i.e. LRU order); thus we need overflow checks and guards.
Reported-by: syzbot+df3bf3f088dcaa728857@syzka
bcachefs: Guard against overflowing LRU_TIME_BITS
LRUs only have 48 bits for the time field (i.e. LRU order); thus we need overflow checks and guards.
Reported-by: [email protected] Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
65eaf4e2 |
| 08-May-2024 |
Kent Overstreet <[email protected]> |
bcachefs: s/bkey_invalid_flags/bch_validate_flags
We're about to start using bch_validate_flags for superblock section validation - it's no longer bkey specific.
Signed-off-by: Kent Overstreet <ken
bcachefs: s/bkey_invalid_flags/bch_validate_flags
We're about to start using bch_validate_flags for superblock section validation - it's no longer bkey specific.
Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|
| #
78e9b548 |
| 01-May-2024 |
Kent Overstreet <[email protected]> |
bcachefs: bch2_dev_bucket_exists() uses bch2_dev_rcu()
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
abe2f470 |
| 30-Apr-2024 |
Kent Overstreet <[email protected]> |
bcachefs: simplify bch2_trans_start_alloc_update()
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
be11ae16 |
| 30-Apr-2024 |
Kent Overstreet <[email protected]> |
bcachefs: __mark_pointer now takes bch_alloc_v4
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
c02eb9e8 |
| 30-Apr-2024 |
Kent Overstreet <[email protected]> |
bcachefs: kill bch2_dev_usage_update_m()
by using bucket_m_to_alloc() more, we can get some nice code cleanup.
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
fa9bb741 |
| 30-Apr-2024 |
Kent Overstreet <[email protected]> |
bcachefs: alloc_data_type_set()
Signed-off-by: Kent Overstreet <[email protected]>
|
| #
2d288745 |
| 23-Apr-2024 |
Nathan Chancellor <[email protected]> |
bcachefs: Fix type of flags parameter for some ->trigger() implementations
When building with clang's -Wincompatible-function-pointer-types-strict (a warning designed to catch potential kCFI failure
bcachefs: Fix type of flags parameter for some ->trigger() implementations
When building with clang's -Wincompatible-function-pointer-types-strict (a warning designed to catch potential kCFI failures at build time), there are several warnings along the lines of:
fs/bcachefs/bkey_methods.c:118:2: error: incompatible function pointer types initializing 'int (*)(struct btree_trans *, enum btree_id, unsigned int, struct bkey_s_c, struct bkey_s, enum btree_iter_update_trigger_flags)' with an expression of type 'int (struct btree_trans *, enum btree_id, unsigned int, struct bkey_s_c, struct bkey_s, unsigned int)' [-Werror,-Wincompatible-function-pointer-types-strict] 118 | BCH_BKEY_TYPES() | ^~~~~~~~~~~~~~~~ fs/bcachefs/bcachefs_format.h:394:2: note: expanded from macro 'BCH_BKEY_TYPES' 394 | x(inode, 8) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~ fs/bcachefs/bkey_methods.c:117:41: note: expanded from macro 'x' 117 | #define x(name, nr) [KEY_TYPE_##name] = bch2_bkey_ops_##name, | ^~~~~~~~~~~~~~~~~~~~ <scratch space>:277:1: note: expanded from here 277 | bch2_bkey_ops_inode | ^~~~~~~~~~~~~~~~~~~ fs/bcachefs/inode.h:26:13: note: expanded from macro 'bch2_bkey_ops_inode' 26 | .trigger = bch2_trigger_inode, \ | ^~~~~~~~~~~~~~~~~~
There are several functions that did not have their flags parameter converted to 'enum btree_iter_update_trigger_flags' in the recent unification, which will cause kCFI failures at runtime because the types, while ABI compatible (hence no warning from the non-strict version of this warning), do not match exactly.
Fix up these functions (as well as a few other obvious functions that should have it, even if there are no warnings currently) to resolve the warnings and potential kCFI runtime failures.
Fixes: 31e4ef3280c8 ("bcachefs: iter/update/trigger/str_hash flag cleanup") Signed-off-by: Nathan Chancellor <[email protected]> Signed-off-by: Kent Overstreet <[email protected]>
show more ...
|