X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fbihash_8_8.h;h=2471871fc81fd514b7ebc478d75e23cd531c1f67;hb=39a8e164486d74e1d4ded5cb83e5a5fec93db3b1;hp=b5c17461245ffc68fe260b85240e41579378585c;hpb=0f68c79a9d8533d492c8221f924b14cf4e222136;p=vpp.git diff --git a/src/vppinfra/bihash_8_8.h b/src/vppinfra/bihash_8_8.h index b5c17461245..2471871fc81 100644 --- a/src/vppinfra/bihash_8_8.h +++ b/src/vppinfra/bihash_8_8.h @@ -13,9 +13,20 @@ * limitations under the License. */ #undef BIHASH_TYPE +#undef BIHASH_KVP_PER_PAGE +#undef BIHASH_32_64_SVM +#undef BIHASH_ENABLE_STATS +#undef BIHASH_KVP_AT_BUCKET_LEVEL +#undef BIHASH_LAZY_INSTANTIATE +#undef BIHASH_BUCKET_PREFETCH_CACHE_LINES +#undef BIHASH_USE_HEAP #define BIHASH_TYPE _8_8 -#define BIHASH_KVP_PER_PAGE 4 +#define BIHASH_KVP_PER_PAGE 7 +#define BIHASH_KVP_AT_BUCKET_LEVEL 1 +#define BIHASH_LAZY_INSTANTIATE 0 +#define BIHASH_BUCKET_PREFETCH_CACHE_LINES 2 +#define BIHASH_USE_HEAP 1 #ifndef __included_bihash_8_8_h__ #define __included_bihash_8_8_h__ @@ -33,13 +44,19 @@ typedef struct u64 value; /**< the value */ } clib_bihash_kv_8_8_t; +static inline void +clib_bihash_mark_free_8_8 (clib_bihash_kv_8_8_t *v) +{ + v->value = 0xFEEDFACE8BADF00DULL; +} + /** Decide if a clib_bihash_kv_8_8_t instance is free @param v- pointer to the (key,value) pair */ static inline int clib_bihash_is_free_8_8 (clib_bihash_kv_8_8_t * v) { - if (v->key == ~0ULL && v->value == ~0ULL) + if (v->value == 0xFEEDFACE8BADF00DULL) return 1; return 0; } @@ -51,7 +68,7 @@ static inline u64 clib_bihash_hash_8_8 (clib_bihash_kv_8_8_t * v) { /* Note: to torture-test linear scan, make this fn return a constant */ -#if __SSE4_2__ +#ifdef clib_crc32c_uses_intrinsics return clib_crc32c ((u8 *) & v->key, 8); #else return clib_xxhash (v->key);