Kent Overstreet
9799b119c3
Update bcachefs sources to 0d63ed13ea3d closures: Fix race in closure_sync()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-25 13:59:16 -04:00
Kent Overstreet
2252eecec7
Update bcachefs sources to 24bdb6fed91c bcachefs: bch2_btree_id_str()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-19 22:56:59 -04:00
Kent Overstreet
6a34032417
Update bcachefs sources to a180af9dd349 bcachefs: Refactor memcpy into direct assignment
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-18 22:14:53 -04:00
Kent Overstreet
a053ebfb8c
Update bcachefs sources to f9c612bbf82d bcachefs: Fixes for building in userspace
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-09-23 20:03:23 -04:00
Brian Foster
f76c449ec0
bcachefs-tools: fix endian problems between bit spinlocks and futexes
...
bcachefs format on a big-endian (s390x) machine crashes down in the
rhashtable code imported from the kernel. The reason this occurs
lies within the rht_lock() -> bit_spin_lock() code, the latter of
which casts bitmaps down to 32-bits to satisfy the requirements of
the futex interface.
The specific problem here is that a 64 -> 32 bit cast doesn't refer
to the lower 8 bytes on a big endian machine, which means setting
bit number 0 in the 32-bit map actually corresponds to bit 32 in the
64-bit map. The rhashtable code specifically uses bit zero of the
bucket pointer for exclusion and uses native bitops elsewhere (i.e.
__rht_ptr()) to identify NULL pointers. If bit 32 of the pointer is
set by the locking code instead of bit 0, an otherwise NULL pointer
looks like a non-NULL value and results in a segfault.
The bit spinlock code imported by the kernel is originally intended
to work with unsigned long. The kernel code is able to throttle the
cpu directly when under lock contention, while the userspace
implementation relies on the futex primitives to emulate reliable
blocking. Since the futex interface introduces the 32-bit
requirement, isolate the associated userspace hack to that
particular code.
Restore the native bitmap behavior of the bit spinlock code to
address the rhashtable problem described above. Since this is not
compatible with the futex interface, create a futex wrapper
specifically to convert the native bitmap type to a 32-bit virtual
address and mask value for the purposes of waiting/waking when under
lock contention.
Signed-off-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-09-19 17:26:45 -04:00
Kent Overstreet
505c326cbe
Update bcachefs sources to a8115093df bcachefs: Fix divide by zero in rebalance_work()
2023-08-17 17:11:27 -04:00
Kent Overstreet
f3976e3733
Update bcachefs sources to b0788c47d9 bcachefs: Fix check_version_upgrade()
2023-08-11 22:25:12 -04:00
Kent Overstreet
87179c7a6e
Update bcachefs sources to 33a60d9b05 bcachefs: Assorted fixes for clang
2023-08-01 22:13:03 -04:00
Kent Overstreet
c8bec83e30
Update bcachefs sources to e14d7c7195 bcachefs: Compression levels
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-07-15 17:36:15 -04:00
Kent Overstreet
21ae8a4b71
Update bcachefs sources to 070ec8d07b bcachefs: Snapshot depth, skiplist fields
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-07-10 14:27:14 -04:00
Kent Overstreet
5d507f795b
Update bcachefs sources to da7d42a9a2 bcachefs: Add new assertions for shutdown path
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-07-09 15:25:40 -04:00
Kent Overstreet
c99a444c5c
Update bcachefs sources to 25de2b00dc bcachefs: Change check for invalid key types
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-07-07 04:25:07 -04:00
Kent Overstreet
619c99de4b
get_random_u32_below()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-06-27 19:45:40 -04:00
Kent Overstreet
cfa816bf3f
Update bcachefs sources to 84f132d569 bcachefs: fsck: Break walk_inode() up into multiple functions
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-06-27 19:38:18 -04:00
Kent Overstreet
0708303f49
Switch to CLOCK_MONOTONIC_COARSE
...
CLOCK_MONOTONIC requires a syscall, and is much more expensive.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-06-18 14:32:28 -04:00
Kent Overstreet
17d1c4f4fe
Update bcachefs sources to ed6b7f81a7 six locks: Disable percpu read lock mode in userspace
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-06-10 22:15:00 -04:00
Kent Overstreet
8642d4ae10
Update bcachefs sources to 7c0fe6f104 bcachefs: Fix bch2_fsck_ask_yn()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-06-04 18:10:29 -04:00
Kent Overstreet
1f78fed469
Update bcachefs sources to 31c09369cd six locks: Fix an unitialized var
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-05-25 22:25:34 -04:00
Kent Overstreet
5ef62f56ab
Update bcachefs sources to 400f275d46 bcachefs: Fix check_overlapping_extents()
2023-05-13 00:13:57 -04:00
Kent Overstreet
6b1f79d5df
Update bcachefs sources to 6a20aede29 bcachefs: Fix quotas + snapshots
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-05-02 00:41:47 -04:00
Mikulas Patocka
4f6b28f54f
A small compile fix
...
Hi
Here I'm sending a small compile fix for bcachefs-tools.
Without this patch, I get this error:
cargo build --release --manifest-path rust-src/Cargo.toml
Compiling bch_bindgen v0.1.0
(/usr/src/git/bcachefs-tools/rust-src/bch_bindgen)
error: failed to run custom build command for `bch_bindgen v0.1.0
(/usr/src/git/bcachefs-tools/rust-src/bch_bindgen)`
Caused by:
process didn't exit successfully:
`/usr/src/git/bcachefs-tools/rust-src/target/release/build/bch_bindgen-733e88995ce9eab7/build-script-build`
(exit status: 101)
--- stderr
warning: optimization flag '-fkeep-inline-functions' is not supported
[-Wignored-optimization-argument]
../../include/linux/bit_spinlock.h:20:3: error: call to undeclared
function 'futex'; ISO C99 and later do not support implicit function
declarations [-Wimplicit-function-declaration]
../../include/linux/bit_spinlock.h:28:2: error: call to undeclared
function 'futex'; ISO C99 and later do not support implicit function
declarations [-Wimplicit-function-declaration]
../../include/linux/bit_spinlock.h:39:2: error: call to undeclared
function 'futex'; ISO C99 and later do not support implicit function
declarations [-Wimplicit-function-declaration]
The futex() function is declared in
/usr/include/x86_64-linux-gnu/urcu/futex.h
It is not declared in linux/futex.h, so we need to include urcu/futex.h
Mikulas
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-04-26 10:44:49 -04:00
Kent Overstreet
7f102ee83d
Update bcachefs sources to 8fd009dd76 bcachefs: Rip out code for storing backpointers in alloc keys
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-31 18:02:57 -04:00
Kent Overstreet
0206d42daf
Update bcachefs sources to 3856459b1b bcachefs: bch2_btree_iter_peek_node_and_restart()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-06 04:11:50 -05:00
Kent Overstreet
b0c9ad15f4
Update bcachefs sources to 171da96d76 bcachefs: Drop some anonymous structs, unions
2023-03-04 23:33:25 -05:00
Kent Overstreet
d010a21653
linux shim: hlist_unhashed()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-02 23:00:03 -05:00
Kent Overstreet
30cca2e94d
Update bcachefs sources to ca97ee3577 bcachefs: bch2_btree_iter_peek_and_restart_outlined()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27 21:36:36 -05:00
Kent Overstreet
da6a356895
Update bcachefs sources to 8e1519ccb6 bcachefs: Add tracepoint & counter for btree split race
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-20 20:03:34 -05:00
Kent Overstreet
c1677df62e
Fix cpu_relax()
...
cpu_relax() is supposed to be a compiler barrier - this fixes a bug with
btree_write_buffer_flush() getting stuck.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-13 17:51:14 -05:00
Kent Overstreet
a104f0407b
Update bcachefs sources to ea93c26e98 fixup! bcachefs: We can handle missing btree roots for all alloc btrees
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-09 18:36:24 -05:00
Kent Overstreet
e2670a38d1
Change memory reclaim
...
- Spin up a background thread to call the shrinkers every 1 second
- Memory allocations will only call reclaim after a failed allocation,
not every single time
This will be a major performance boost on allocation intensive
workloads.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2022-12-19 14:47:42 -05:00
Kent Overstreet
934a84dfaf
Update bcachefs sources to 5963d1b1a4 bcacehfs: Fix bch2_get_alloc_in_memory_pos()
2022-11-26 17:09:59 -05:00
Stijn Tintel
48eefee749
Fix build against musl libc.
...
The musl C library does not define __attribute_const__. Add it to
include/linux/compiler.h with a guard to fix build against musl libc.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2022-11-24 06:21:06 +02:00
Kent Overstreet
c1e4d447f6
Update bcachefs sources to 8d3fc97ca3 bcachefs: Fixes for building in userspace
2022-11-13 20:07:22 -05:00
Kent Overstreet
ae43a58d97
Update bcachefs sources to 70fa0c1ff4 fixup! bcachefs: Btree key cache improvements
2022-10-23 18:24:08 -04:00
Kent Overstreet
188b6d0c8e
Update bcachefs sources to cd779e0cc5 bcachefs: Skip inode unpack/pack in bch2_extent_update()
2022-10-22 14:41:54 -04:00
Kent Overstreet
e0a51ccce8
Update bcachefs sources to 3e93567c51 bcachefs: Switch to local_clock() for fastpath time source
2022-10-15 01:04:30 -04:00
Kent Overstreet
0398adf20f
fixup! Don't run shrinkers without GFP_KERNEL
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2022-10-11 03:22:59 -04:00
Kent Overstreet
81aef33957
Don't run shrinkers without GFP_KERNEL
...
This would correspond to GFP_RECLAIM in the kernel - but we don't
distinguish between different types of reclaim here.
This solves a deadlock in the btree node memory allocation path - we
allocate with the btree node cache lock held but without GFP_KERNEL set.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2022-10-11 00:39:06 -04:00
Kent Overstreet
72add8822c
Update bcachefs sources to 47ffed9fad bcachefs: bch2_btree_delete_range_trans() now uses peek_upto()
2022-10-10 00:10:45 -04:00
Kent Overstreet
8d6138baac
Update bcachefs sources to cbccc6d869 bcachefs: Ratelimit ec error message
2022-10-09 02:33:05 -04:00
Kent Overstreet
99caca2c70
Update bcachefs sources to 24c6361e20 bcachefs: Fix a trans path overflow in bch2_btree_delete_range_trans()
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2022-09-28 11:41:03 -04:00
Kent Overstreet
d01f633041
Update bcachefs sources to 176718966e bcachefs: Re-enable hash_redo_key()
2022-09-04 14:42:05 -04:00
Kent Overstreet
dded444b20
Update bcachefs sources to dfaf9a6ee2 lib/printbuf: Clean up headers
2022-08-18 12:49:48 -04:00
Kent Overstreet
ddac1641ee
Update bcachefs sources to 90a9c61e2b bcachefs: Switch bch2_btree_delete_range() to bch2_trans_run()
2022-08-11 17:34:34 -04:00
Kent Overstreet
79d39bd7ce
Update bcachefs sources to d82da7126f fixup! bcachefs: for_each_btree_key2()
2022-07-17 05:20:54 -04:00
Kent Overstreet
64ddfc9fc5
hweight32()
...
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-06-27 15:58:39 -04:00
Kent Overstreet
23dc00de78
Fix printk_ratelimited()
...
printk_ratelimited was behind an #ifdef CONFIG_PRINTK, which we don't
define, so it was a complete noop - oops.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-06-22 22:05:39 -04:00
Kent Overstreet
03b8098d37
cmd_dump: Use buffered IO for reading device metadata
...
We're reading device metadat in mostly sequential order - buffered IO
will be faster than O_DIRECT.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-06-18 18:33:25 -04:00
Kent Overstreet
ffbf806d5c
Update bcachefs sources to 3704d0779c bcachefs: Improved human readable integer parsing
2022-06-11 18:14:06 -04:00
Kent Overstreet
6ac37db841
Update bcachefs sources to 24f7e08cd8 bcachefs: shrinker.to_text() methods
2022-06-09 15:07:25 -04:00
Kent Overstreet
46b2c553aa
Update bcachefs sources to fad6d13aa5 fixup! bcachefs: Add persistent counters
2022-05-30 23:24:10 -04:00
Kent Overstreet
986533d8d5
Update bcachefs sources to 6ddf061e68 bcachefs: Use a genradix for reading journal entries
2022-04-08 19:26:30 -04:00
Kent Overstreet
cc1b64e992
Flush standard output before popping assertions
...
Seeing error messages before we die generally makes assertions easier to
debug.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-03-30 23:20:39 -04:00
Kent Overstreet
e240b4ae86
Update bcachefs sources to f638850417 bcachefs: bch2_trans_log_msg()
2022-03-30 17:40:37 -04:00
Kent Overstreet
1a9d73b5c0
Shrinker improvements
...
After memory allocation failure, don't rely on /proc/meminfo to figure
out how much memory we should free - instead unconditionally free 1/8th
of each cache.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-03-21 20:20:09 -04:00
Kent Overstreet
205d75307a
Better bio_alloc_bioset()
...
bio_alloc_bioset() now uses mempools, so we don't segfault on memory
allocation failure.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-03-21 18:21:31 -04:00
Kent Overstreet
d34e731082
Update bcachefs sources to e48731a188 bcachefs: Fix BTREE_TRIGGER_WANTS_OLD_AND_NEW
2022-03-13 19:20:59 -04:00
Kent Overstreet
bf7924f552
Add freezable_schedule() to linux kernel shim
...
Also fix the freezable_schedule_timeout() macro.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-03-10 15:38:02 -05:00
Kent Overstreet
cc1a99fb74
Switch to pthread_mutex_t for spinlocks, too
...
This fixes an observed journal deadlock - real spinlocks aren't safe in
userspace.
2022-02-18 05:58:24 -05:00
Kent Overstreet
a1d66a2a4e
Update bcachefs sources to ba398d2906 bcachefs: Fix reflink repair code
2022-02-13 04:08:33 -05:00
Kent Overstreet
9c79275419
Update bcachefs sources to b84661c042 bcachefs: Fix reflink repair code
2022-02-11 18:33:16 -05:00
Kent Overstreet
931ed5a709
Update bcachefs sources to 50ac18afbb bcachefs: Fix an uninitialized variable
2022-01-04 19:56:40 -05:00
Kent Overstreet
617dc6dd68
Retry memory allocation failures
...
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2022-01-01 21:14:28 -05:00
Kent Overstreet
42ba8b5a75
Update bcachefs sources to 5fd0c70102 bcachefs: Fix __remove_dirent()
2021-11-03 21:28:23 -04:00
Brett Holman
76821f0760
make BIO_MAX_VECS unsigned, like the kernel definition
...
Signed-off-by: Brett Holman <bholman.devel@gmail.com>
2021-10-16 13:41:43 -06:00
Kent Overstreet
ac82bc1ea5
Delete unused variable
...
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2021-07-28 17:27:25 -04:00
Brett Holman
308d7adcc5
fix for musl and non-x86 archs
2021-07-24 20:16:41 -04:00
Kent Overstreet
86bd5c622c
Update bcachefs sources to 787de128a5 bcachefs: Improvements to fsck check_dirents()
2021-07-14 20:31:38 -04:00
Kent Overstreet
700d013b52
Update bcachefs sources to 400c2f8d96 bcachefs: Mask out unknown compat features when going read-write
2021-07-11 13:57:11 -04:00
Kent Overstreet
347c0b108e
Update bcachefs sources to dbee44d5ab bcachefs: add bcachefs xxhash support
2021-07-07 20:30:53 -04:00
Kent Overstreet
ff578c6718
Update bcachefs sources to 69be0dae31 bcachefs: Always zero memory from bch2_trans_kmalloc()
2021-06-10 20:25:55 -04:00
Kent Overstreet
4a2acdaf65
Update closures from kernel source tree
2021-05-27 21:13:52 -04:00
Kent Overstreet
27d75d929f
Grab math.h from kernel source tree
...
This gets us round_up() and round_down()
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2021-05-27 21:12:13 -04:00
Kent Overstreet
2e2d5a3f7e
Update bcachefs sources to 0cd3e1d27a bcachefs: Fix for bch2_bkey_pack_pos() not initializing len/version fields
2021-05-17 16:48:48 -04:00
Kent Overstreet
8f72e6940c
Fix some minor compiler warnings
...
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2021-05-17 16:35:54 -04:00
Kent Overstreet
bb74624daa
Update bcachefs sources to a5c0e1bb30 bcachefs: Clean up bch2_btree_and_journal_walk()
2021-04-30 18:23:38 -04:00
Kent Overstreet
a14d39d7ac
bit_spinlocks now use futexes
...
Spinlocks aren't a good idea in userspace, where we can't actually
disable preemption.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2021-04-26 20:18:47 -04:00
Kent Overstreet
edc3ffe8f2
Update bcachefs sources to 8d3093bd9b bcachefs: Evict btree nodes we're deleting
2021-04-26 20:18:47 -04:00
Kent Overstreet
30f72f75f5
Add a real mempool implementation
...
Imported from the kernel.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2021-04-24 01:36:43 -04:00
Kent Overstreet
ceac31bcb6
Update bcachefs sources to fe72e70682 bcachefs: Fix for btree_gc repairing interior btree ptrs
2021-04-19 21:26:48 -04:00
Kent Overstreet
967c870498
Update bcachefs sources to 8eca47e4d5 bcachefs: Improved check_directory_structure()
2021-04-13 10:24:15 -04:00
Kent Overstreet
b422ff58ba
Update bcachefs sources to a8b3ce7599 fixup! bcachefs: Eliminate more PAGE_SIZE uses
2021-04-12 11:48:45 -04:00
Kent Overstreet
d340c4f4a8
Fix krealloc() alignment
...
bcachefs assumes kmalloc & krealloc give out allocations that are
naturally aligned, like the kernel allocators do.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2021-04-08 15:48:45 -04:00
Kent Overstreet
a2094890a9
Update bcachefs sources to 18686af684 bcachefs: Inode backpointers
2021-03-29 00:22:38 -04:00
Kent Overstreet
c88113e255
Update bcachefs sources to ad68801b93 bcachefs: Use pcpu mode of six locks for interior nodes
2021-03-24 22:13:00 -04:00
Kent Overstreet
c28f93bc52
generix radix trees: Don't overflow in peek()
2021-02-12 21:42:46 -05:00
Kent Overstreet
868abec1ab
Update bcachefs sources to 5e73602f6c bcachefs: Fix for fsck hanging
2021-02-12 16:02:52 -05:00
Kent Overstreet
db931a4571
Update bcachefs sources to e1d0fb8c5f bcachefs: Don't require flush/fua on every journal write
2020-12-04 13:45:33 -05:00
Kent Overstreet
1e574cb1aa
Update bcachefs sources to 021e62a098 bcachefs: Fix error in filesystem initialization
2020-11-30 00:06:46 -05:00
Kent Overstreet
13f53aa228
Update bcachefs sources to d1fd471830 bcachefs: Add more debug checks
2020-11-16 18:23:54 -05:00
Kent Overstreet
3420d86959
Round up aligned_alloc() allocations
...
this fixes an address sanitizer splat
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-11-16 18:23:47 -05:00
Kent Overstreet
4df03a2ead
Fix kmalloc_array macro
...
This was causing us some valgrind errors.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2020-11-08 15:23:13 -05:00
Kent Overstreet
d2a118d921
Update bcachefs sources to 1d669389f7 bcachefs: use a radix tree for inum bitmap in fsck
2020-11-07 13:09:23 -05:00
Kent Overstreet
cd9892e543
Update bcachefs sources to 10ab39f2fa bcachefs: Improvements to the journal read error paths
2020-08-24 16:25:05 -04:00
Kent Overstreet
05408b6f8f
Update bcachefs sources to 4837f82ee1 bcachefs: Use cached iterators for alloc btree
2020-06-15 16:27:19 -04:00
Kent Overstreet
c32bba1325
Fix build when CONFIG_BCACHEFS_DEBUG=y
2020-06-04 07:57:09 -04:00
Yuxuan Shui
69413acbdc
kmalloc: use posix_memalign
...
posix_memalign doesn't have the restriction that size must be a multiply
of alignment.
This also reverts the fix in commit f3fdbbfa92
.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-05-23 17:43:38 +01:00
Kent Overstreet
f8d4cbe40b
Update log2.h from linux kernel
...
This fixes a build breakage where the old log2.g referenced
__ilog2_NaN() which we weren't defining.
2020-05-21 17:19:47 -04:00
Yuxuan Shui
f3fdbbfa92
Make sure aligned_alloc size is a multiply of alignment
...
Fix a ASan complaint.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2020-05-21 14:36:00 +01:00
Kent Overstreet
34c9be19b3
Update bcachefs sources to e1f6739c4a bcachefs: Fix another iterator counting bug
2020-05-14 21:48:52 -04:00