[3/3] test/hash: init hash parameters in the correct function
Checks
Commit Message
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@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
---
app/test/test_hash_readwrite_lf.c | 98 +++++++++++++++----------------
1 file changed, 49 insertions(+), 49 deletions(-)
Comments
On Thu, Jun 27, 2019 at 5:25 AM Honnappa Nagarahalli <
honnappa.nagarahalli@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@dpdk.org
>
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
> Reviewed-by: Dharmik Thakkar <dharmik.thakkar@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.
<snip>
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.
[Honnappa] Done in V2
--
David Marchand
@@ -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)