[dpdk-dev] [PATCH v2 2/4] test/hash: change multiwriter test to use jhash
Bruce Richardson
bruce.richardson at intel.com
Thu Oct 25 11:32:52 CEST 2018
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.wang at 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
More information about the dev
mailing list