diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-03-02 01:54:17 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:55 -0400 |
commit | e84face6f0c9512d896eb1bf6c8238ea2fa7edd0 (patch) | |
tree | 802f0dde21c3311cf7a0245f379e0f1d2450bc29 /fs/bcachefs/alloc_types.h | |
parent | d57c9add59b187a6fcd76cb80d60f36234ca8033 (diff) | |
download | linux-e84face6f0c9512d896eb1bf6c8238ea2fa7edd0.tar.gz linux-e84face6f0c9512d896eb1bf6c8238ea2fa7edd0.tar.bz2 linux-e84face6f0c9512d896eb1bf6c8238ea2fa7edd0.zip |
bcachefs: RESERVE_stripe
Rework stripe creation path - new algorithm for deciding when to create
new stripes or reuse existing stripes.
We add a new allocation watermark, RESERVE_stripe, above RESERVE_none.
Then we always try to create a new stripe by doing RESERVE_stripe
allocations; if this fails, we reuse an existing stripe and allocate
buckets for it with the reserve watermark for the given write
(RESERVE_none or RESERVE_movinggc).
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/alloc_types.h')
-rw-r--r-- | fs/bcachefs/alloc_types.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/alloc_types.h b/fs/bcachefs/alloc_types.h index c8a45ea9d661..4d09bd20d8ec 100644 --- a/fs/bcachefs/alloc_types.h +++ b/fs/bcachefs/alloc_types.h @@ -22,7 +22,8 @@ struct ec_bucket_buf; x(btree_movinggc) \ x(btree) \ x(movinggc) \ - x(none) + x(none) \ + x(stripe) enum alloc_reserve { #define x(name) RESERVE_##name, |