[dpdk-dev] [dpdk-stable] [PATCH 3/3] test/hash: init hash parameters in the correct function
David Marchand
david.marchand at redhat.com
Thu Jun 27 10:07:54 CEST 2019
On Thu, Jun 27, 2019 at 5:25 AM Honnappa Nagarahalli <
honnappa.nagarahalli at arm.com> wrote:
> Each test case initializes its hash parameters in the test case
> function. To be consistent, generate keys function should initialize
> hash parameters similarly.
>
> Fixes: c7eb0972e74b ("test/hash: add lock-free r/w concurrency")
> Cc: stable at dpdk.org
>
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
> Reviewed-by: Dharmik Thakkar <dharmik.thakkar at arm.com>
> ---
> app/test/test_hash_readwrite_lf.c | 98 +++++++++++++++----------------
> 1 file changed, 49 insertions(+), 49 deletions(-)
>
> diff --git a/app/test/test_hash_readwrite_lf.c
> b/app/test/test_hash_readwrite_lf.c
> index e92d1065b..efabb60ef 100644
> --- a/app/test/test_hash_readwrite_lf.c
> +++ b/app/test/test_hash_readwrite_lf.c
> @@ -141,6 +141,52 @@ get_enabled_cores_list(void)
> return 0;
> }
>
> +static int
> +init_params(int rwc_lf, int use_jhash, int htm, int ext_bkt)
> +{
> + struct rte_hash *handle;
> +
> + struct rte_hash_parameters hash_params = {
> + .entries = TOTAL_ENTRY,
> + .key_len = sizeof(uint32_t),
> + .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 (rwc_lf)
> + hash_params.extra_flag =
> + RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY_LF |
> + RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD;
> + else if (htm)
> + hash_params.extra_flag =
> + RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT |
> + RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY |
> + RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD;
> + else
> + hash_params.extra_flag =
> + RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY |
> + RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD;
> +
> + if (ext_bkt)
> + hash_params.extra_flag |= RTE_HASH_EXTRA_FLAGS_EXT_TABLE;
> +
> + hash_params.name = "tests";
> +
> + handle = rte_hash_create(&hash_params);
> + if (handle == NULL) {
> + printf("hash creation failed");
> + return -1;
> + }
> +
> + tbl_rwc_test_param.h = handle;
> + return 0;
> +}
> +
> static inline int
> check_bucket(uint32_t bkt_idx, uint32_t key)
> {
> @@ -215,6 +261,9 @@ generate_keys(void)
> uint32_t count_keys_extbkt = 0;
> uint32_t i;
>
> + if (init_params(0, 0, 0, 0) != 0)
> + return -1;
> +
> /*
> * keys will consist of a) keys whose addition to the hash table
> * will result in shifting of the existing keys to their alternate
> @@ -504,52 +553,6 @@ generate_keys(void)
> return -1;
> }
>
> -static int
> -init_params(int rwc_lf, int use_jhash, int htm, int ext_bkt)
> -{
> - struct rte_hash *handle;
> -
> - struct rte_hash_parameters hash_params = {
> - .entries = TOTAL_ENTRY,
> - .key_len = sizeof(uint32_t),
> - .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 (rwc_lf)
> - hash_params.extra_flag =
> - RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY_LF |
> - RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD;
> - else if (htm)
> - hash_params.extra_flag =
> - RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT |
> - RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY |
> - RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD;
> - else
> - hash_params.extra_flag =
> - RTE_HASH_EXTRA_FLAGS_RW_CONCURRENCY |
> - RTE_HASH_EXTRA_FLAGS_MULTI_WRITER_ADD;
> -
> - if (ext_bkt)
> - hash_params.extra_flag |= RTE_HASH_EXTRA_FLAGS_EXT_TABLE;
> -
> - hash_params.name = "tests";
> -
> - handle = rte_hash_create(&hash_params);
> - if (handle == NULL) {
> - printf("hash creation failed");
> - return -1;
> - }
> -
> - tbl_rwc_test_param.h = handle;
> - return 0;
> -}
> -
> static int
> test_rwc_reader(__attribute__((unused)) void *arg)
> {
> @@ -1254,7 +1257,6 @@ test_hash_readwrite_lf_main(void)
> */
> int rwc_lf = 0;
> int htm;
> - int use_jhash = 0;
> int ext_bkt = 0;
> if (rte_lcore_count() == 1) {
> printf("More than one lcore is required "
> @@ -1272,8 +1274,6 @@ test_hash_readwrite_lf_main(void)
> else
> htm = 0;
>
> - if (init_params(rwc_lf, use_jhash, htm, ext_bkt) != 0)
> - return -1;
> if (generate_keys() != 0)
> return -1;
> if (get_enabled_cores_list() != 0)
> --
> 2.17.1
>
>
This patch impacts the memory allocations, it should be placed before patch
2.
--
David Marchand
More information about the dev
mailing list