diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-05-13 17:21:55 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-05-13 17:24:18 -0400 |
commit | 2eae07ff7dfa8a594584935cb9a93b96b48090cd (patch) | |
tree | 5061a6c7b5ffba38483e9adc9f27439ad0d93fad | |
parent | aa74a66fe2ada7429302f8552f400973f1466cf0 (diff) |
bcachefs: Use memcpy_u64s_small() for copying keys
Small performance optimization; an open coded loop is better than rep ;
movsq for small copies.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/bkey.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/bkey_sort.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/bset.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/fs/bcachefs/bkey.c b/fs/bcachefs/bkey.c index ff5d01e6e674..b58b876fdc71 100644 --- a/fs/bcachefs/bkey.c +++ b/fs/bcachefs/bkey.c @@ -360,7 +360,7 @@ bool bch2_bkey_pack(struct bkey_packed *out, const struct bkey_i *in, memmove_u64s((u64 *) out + format->key_u64s, &in->v, bkey_val_u64s(&in->k)); - memcpy_u64s(out, &tmp, format->key_u64s); + memcpy_u64s_small(out, &tmp, format->key_u64s); return true; } diff --git a/fs/bcachefs/bkey_sort.c b/fs/bcachefs/bkey_sort.c index cdef41db7692..b9aa027c881b 100644 --- a/fs/bcachefs/bkey_sort.c +++ b/fs/bcachefs/bkey_sort.c @@ -188,7 +188,7 @@ unsigned bch2_sort_keys(struct bkey_packed *dst, } if (bkey_deleted(in)) { - memcpy_u64s(out, in, bkeyp_key_u64s(f, in)); + memcpy_u64s_small(out, in, bkeyp_key_u64s(f, in)); set_bkeyp_val_u64s(f, out, 0); } else { bkey_copy(out, in); diff --git a/fs/bcachefs/bset.c b/fs/bcachefs/bset.c index a4c06e856c2e..4d55011551e0 100644 --- a/fs/bcachefs/bset.c +++ b/fs/bcachefs/bset.c @@ -1022,7 +1022,7 @@ void bch2_bset_insert(struct btree *b, set_btree_bset_end(b, t); } - memcpy_u64s(where, src, + memcpy_u64s_small(where, src, bkeyp_key_u64s(f, src)); memcpy_u64s(bkeyp_val(f, where), &insert->v, bkeyp_val_u64s(f, src)); |