From d598a9b7e27158d3b6972077e2f7296f279c2e8b Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sat, 13 May 2023 17:21:55 -0400 Subject: [PATCH] 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 --- fs/bcachefs/bkey.c | 2 +- fs/bcachefs/bkey_sort.c | 2 +- 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 abb444192749f..ee7ba700e75f4 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 cdef41db76925..b9aa027c881b1 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 a4c06e856c2e6..4d55011551e01 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)); -- 2.30.2