On Wed, Oct 24, 2018 at 11:09:28AM -0700, Yipeng Wang wrote:
> With sequential key, the test will cover more corner
> cases with jhash instead of crc hash, since jhash
> generates more random hash pattern on sequential key.
> It is useful for functional verification.
> 
> Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com>
> ---
>  test/test/test_hash_multiwriter.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/test/test/test_hash_multiwriter.c 
> b/test/test/test_hash_multiwriter.c
> index 6a3eb10..456bc5f 100644
> --- a/test/test/test_hash_multiwriter.c
> +++ b/test/test/test_hash_multiwriter.c
> @@ -12,6 +12,7 @@
>  #include <rte_malloc.h>
>  #include <rte_random.h>
>  #include <rte_spinlock.h>
> +#include <rte_jhash.h>
>  
>  #include "test.h"
>  
> @@ -31,6 +32,9 @@
>  
>  #define RTE_APP_TEST_HASH_MULTIWRITER_FAILED 0
>  
> +/* Use jhash or crc hash */
> +#define USE_JHASH 1
> +
>  struct {
>       uint32_t *keys;
>       uint32_t *found;
> @@ -108,10 +112,14 @@ test_hash_multiwriter(void)
>       struct rte_hash_parameters hash_params = {
>               .entries = nb_entries,
>               .key_len = sizeof(uint32_t),
> -             .hash_func = rte_hash_crc,
>               .hash_func_init_val = 0,
>               .socket_id = rte_socket_id(),
>       };
> +     if (USE_JHASH)
> +             hash_params.hash_func = rte_jhash;
> +     else
> +             hash_params.hash_func = rte_hash_crc;
> +
>       if (use_htm)
>               hash_params.extra_flag =
>                       RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT
> -- 
As I commented on v1, rather than having a macro at the top hard-coded to
jhash, why not just do a straight replacement of crc to jhash in the
structure definition. Since changing the hash function will involve editing
the source code anyway, I see little point in using the macro at the top -
especially since there is no indication to the user what effect removing it
or changing it to zero has.

/Bruce

Reply via email to