[3/3] test/hash: init hash parameters in the correct function

Message ID 20190627032420.4730-3-honnappa.nagarahalli@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [1/3] test/hash: reset global variable to discard old data |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Honnappa Nagarahalli June 27, 2019, 3:24 a.m. UTC
  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

David Marchand June 27, 2019, 8:07 a.m. UTC | #1
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.
  
Honnappa Nagarahalli June 28, 2019, 4:55 a.m. UTC | #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
  

Patch

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)