Commit 5d011012 authored by Alan Huang's avatar Alan Huang Committed by Kent Overstreet

bcachefs: Minimize the search range used to calculate the mantissa

When the search key's mantissa is larger than the node i's, we know that
the search key is larger than the first key of the cacheline corresponding
to node i, so that when we are calculating the mantissa of right side
nodes of node i, the left side of the search range can be the first key
of node i. Once the search range is minimized, the mantissa we are
calculating can have more useful bits, thus reduce the slow path
comparison. Besides, we can now remove all the prev array stuff.
Signed-off-by: default avatarAlan Huang <mmpgouride@gmail.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 288a6690
...@@ -616,7 +616,7 @@ static __always_inline void make_bfloat(struct btree *b, struct bset_tree *t, ...@@ -616,7 +616,7 @@ static __always_inline void make_bfloat(struct btree *b, struct bset_tree *t,
struct bkey_packed *m = tree_to_bkey(b, t, j); struct bkey_packed *m = tree_to_bkey(b, t, j);
struct bkey_packed *l = is_power_of_2(j) struct bkey_packed *l = is_power_of_2(j)
? min_key ? min_key
: tree_to_prev_bkey(b, t, j >> ffs(j)); : tree_to_bkey(b, t, j >> ffs(j));
struct bkey_packed *r = is_power_of_2(j + 1) struct bkey_packed *r = is_power_of_2(j + 1)
? max_key ? max_key
: tree_to_bkey(b, t, j >> (ffz(j) + 1)); : tree_to_bkey(b, t, j >> (ffz(j) + 1));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment