diff options
Diffstat (limited to 'src/vppinfra/bihash_template.c')
-rw-r--r-- | src/vppinfra/bihash_template.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/vppinfra/bihash_template.c b/src/vppinfra/bihash_template.c index e218f4b0dc6..698053867a4 100644 --- a/src/vppinfra/bihash_template.c +++ b/src/vppinfra/bihash_template.c @@ -295,7 +295,7 @@ BV (make_working_copy) (BVT (clib_bihash) * h, BVT (clib_bihash_bucket) * b) v = BV (clib_bihash_get_value) (h, b->offset); - _clib_memcpy (working_copy, v, sizeof (*v) * (1 << b->log2_pages)); + clib_memcpy_fast (working_copy, v, sizeof (*v) * (1 << b->log2_pages)); working_bucket.as_u64 = b->as_u64; working_bucket.offset = BV (clib_bihash_get_offset) (h, working_copy); CLIB_MEMORY_BARRIER (); @@ -338,8 +338,8 @@ BV (split_and_rehash) /* Empty slot */ if (BV (clib_bihash_is_free) (&(new_v->kvp[j]))) { - _clib_memcpy (&(new_v->kvp[j]), &(old_values->kvp[i]), - sizeof (new_v->kvp[j])); + clib_memcpy_fast (&(new_v->kvp[j]), &(old_values->kvp[i]), + sizeof (new_v->kvp[j])); goto doublebreak; } } @@ -383,8 +383,8 @@ BV (split_and_rehash_linear) if (BV (clib_bihash_is_free) (&(new_values->kvp[j]))) { /* Copy the old value and move along */ - _clib_memcpy (&(new_values->kvp[j]), &(old_values->kvp[i]), - sizeof (new_values->kvp[j])); + clib_memcpy_fast (&(new_values->kvp[j]), &(old_values->kvp[i]), + sizeof (new_values->kvp[j])); j++; goto doublebreak; } @@ -472,7 +472,7 @@ static inline int BV (clib_bihash_add_del_inline) if (!memcmp (&(v->kvp[i]), &add_v->key, sizeof (add_v->key))) { CLIB_MEMORY_BARRIER (); /* Add a delay */ - _clib_memcpy (&(v->kvp[i]), add_v, sizeof (*add_v)); + clib_memcpy_fast (&(v->kvp[i]), add_v, sizeof (*add_v)); BV (clib_bihash_unlock_bucket) (b); return (0); } @@ -488,10 +488,11 @@ static inline int BV (clib_bihash_add_del_inline) * Copy the value first, so that if a reader manages * to match the new key, the value will be right... */ - _clib_memcpy (&(v->kvp[i].value), - &add_v->value, sizeof (add_v->value)); + clib_memcpy_fast (&(v->kvp[i].value), + &add_v->value, sizeof (add_v->value)); CLIB_MEMORY_BARRIER (); /* Make sure the value has settled */ - _clib_memcpy (&(v->kvp[i]), &add_v->key, sizeof (add_v->key)); + clib_memcpy_fast (&(v->kvp[i]), &add_v->key, + sizeof (add_v->key)); b->refcnt++; ASSERT (b->refcnt > 0); BV (clib_bihash_unlock_bucket) (b); @@ -506,7 +507,7 @@ static inline int BV (clib_bihash_add_del_inline) if (is_stale_cb (&(v->kvp[i]), arg)) { CLIB_MEMORY_BARRIER (); - _clib_memcpy (&(v->kvp[i]), add_v, sizeof (*add_v)); + clib_memcpy_fast (&(v->kvp[i]), add_v, sizeof (*add_v)); BV (clib_bihash_unlock_bucket) (b); return (0); } @@ -602,7 +603,7 @@ static inline int BV (clib_bihash_add_del_inline) { if (BV (clib_bihash_is_free) (&(new_v->kvp[i]))) { - _clib_memcpy (&(new_v->kvp[i]), add_v, sizeof (*add_v)); + clib_memcpy_fast (&(new_v->kvp[i]), add_v, sizeof (*add_v)); goto expand_ok; } } |