* [dpdk-dev] [PATCH 1/3] test/hash: reset global variable to discard old data
@ 2019-06-27 3:24 Honnappa Nagarahalli
2019-06-27 3:24 ` [dpdk-dev] [PATCH 2/3] test/hash: free allocated memory Honnappa Nagarahalli
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-27 3:24 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
Reset tbl_rwc_test_param to discard data from previous run
of the test.
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 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index 343a338b4..e9aca6ff4 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -1264,6 +1264,9 @@ test_hash_readwrite_lf_main(void)
setlocale(LC_NUMERIC, "");
+ /* Reset tbl_rwc_test_param to discard values from previous run */
+ memset(&tbl_rwc_test_param, 0, sizeof(tbl_rwc_test_param));
+
if (rte_tm_supported())
htm = 1;
else
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH 2/3] test/hash: free allocated memory
2019-06-27 3:24 [dpdk-dev] [PATCH 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
@ 2019-06-27 3:24 ` Honnappa Nagarahalli
2019-06-27 8:07 ` [dpdk-dev] [dpdk-stable] " David Marchand
2019-06-27 3:24 ` [dpdk-dev] [PATCH 3/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
` (2 subsequent siblings)
3 siblings, 1 reply; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-27 3:24 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
Free allocated memory.
Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
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 | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index e9aca6ff4..e92d1065b 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -1431,6 +1431,8 @@ test_hash_readwrite_lf_main(void)
rte_free(tbl_rwc_test_param.keys_ks);
rte_free(tbl_rwc_test_param.keys_absent);
rte_free(tbl_rwc_test_param.keys_shift_path);
+ rte_free(tbl_rwc_test_param.keys_ext_bkt);
+ rte_free(tbl_rwc_test_param.keys_ks_extbkt);
rte_free(scanned_bkts);
return 0;
}
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH 3/3] test/hash: init hash parameters in the correct function
2019-06-27 3:24 [dpdk-dev] [PATCH 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-06-27 3:24 ` [dpdk-dev] [PATCH 2/3] test/hash: free allocated memory Honnappa Nagarahalli
@ 2019-06-27 3:24 ` Honnappa Nagarahalli
2019-06-27 8:07 ` [dpdk-dev] [dpdk-stable] " David Marchand
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
3 siblings, 1 reply; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-27 3:24 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 2/3] test/hash: free allocated memory
2019-06-27 3:24 ` [dpdk-dev] [PATCH 2/3] test/hash: free allocated memory Honnappa Nagarahalli
@ 2019-06-27 8:07 ` David Marchand
2019-06-28 4:59 ` Honnappa Nagarahalli
0 siblings, 1 reply; 17+ messages in thread
From: David Marchand @ 2019-06-27 8:07 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: Wang, Yipeng1, Gobriel, Sameh, Bruce Richardson, Pablo de Lara,
Dharmik Thakkar, dev, nd, dpdk stable
On Thu, Jun 27, 2019 at 5:25 AM Honnappa Nagarahalli <
honnappa.nagarahalli@arm.com> wrote:
> Free allocated memory.
>
> Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
> 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 | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/app/test/test_hash_readwrite_lf.c
> b/app/test/test_hash_readwrite_lf.c
> index e9aca6ff4..e92d1065b 100644
> --- a/app/test/test_hash_readwrite_lf.c
> +++ b/app/test/test_hash_readwrite_lf.c
> @@ -1431,6 +1431,8 @@ test_hash_readwrite_lf_main(void)
> rte_free(tbl_rwc_test_param.keys_ks);
> rte_free(tbl_rwc_test_param.keys_absent);
> rte_free(tbl_rwc_test_param.keys_shift_path);
> + rte_free(tbl_rwc_test_param.keys_ext_bkt);
> + rte_free(tbl_rwc_test_param.keys_ks_extbkt);
> rte_free(scanned_bkts);
> return 0;
> }
> --
> 2.17.1
>
I inspected this test a little more, I can see other leaks.
- generate_keys(), on error, we are leaking tbl_rwc_test_param.h.
- test_rwc_reader(), we are leaking pos.
- test_hash_readwrite_lf_main(), we are leaking
tbl_rwc_test_param.keys_non_shift_path
Looking at your patch 1, I would prefer you reset tbl_rwc_test_param field
per field to NULL once the rte_free() is called.
It would then be easier for you to track the remaining leaks (and patch 1
disappears).
--
David Marchand
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 3/3] test/hash: init hash parameters in the correct function
2019-06-27 3:24 ` [dpdk-dev] [PATCH 3/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
@ 2019-06-27 8:07 ` David Marchand
2019-06-28 4:55 ` Honnappa Nagarahalli
0 siblings, 1 reply; 17+ messages in thread
From: David Marchand @ 2019-06-27 8:07 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: Wang, Yipeng1, Gobriel, Sameh, Bruce Richardson, Pablo de Lara,
Dharmik Thakkar, dev, nd, dpdk stable
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.
--
David Marchand
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v2 1/3] test/hash: reset global variable to discard old data
2019-06-27 3:24 [dpdk-dev] [PATCH 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-06-27 3:24 ` [dpdk-dev] [PATCH 2/3] test/hash: free allocated memory Honnappa Nagarahalli
2019-06-27 3:24 ` [dpdk-dev] [PATCH 3/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
@ 2019-06-28 4:52 ` Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 2/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 3/3] test/hash: free allocated memory Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
3 siblings, 2 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-28 4:52 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
Reset tbl_rwc_test_param to discard data from previous run
of the test.
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 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index 343a338b4..e9aca6ff4 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -1264,6 +1264,9 @@ test_hash_readwrite_lf_main(void)
setlocale(LC_NUMERIC, "");
+ /* Reset tbl_rwc_test_param to discard values from previous run */
+ memset(&tbl_rwc_test_param, 0, sizeof(tbl_rwc_test_param));
+
if (rte_tm_supported())
htm = 1;
else
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v2 2/3] test/hash: init hash parameters in the correct function
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
@ 2019-06-28 4:52 ` Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 3/3] test/hash: free allocated memory Honnappa Nagarahalli
1 sibling, 0 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-28 4:52 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
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 e9aca6ff4..12522e265 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
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v2 3/3] test/hash: free allocated memory
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 2/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
@ 2019-06-28 4:52 ` Honnappa Nagarahalli
2019-06-28 8:38 ` [dpdk-dev] [dpdk-stable] " David Marchand
1 sibling, 1 reply; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-28 4:52 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
Free allocated memory.
Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
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 | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index 12522e265..9b054dec0 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -537,6 +537,7 @@ generate_keys(void)
tbl_rwc_test_param.count_keys_ks_extbkt);
rte_free(found);
+ rte_free(scanned_bkts);
rte_hash_free(tbl_rwc_test_param.h);
return 0;
@@ -547,9 +548,11 @@ generate_keys(void)
rte_free(keys_absent);
rte_free(found);
rte_free(tbl_rwc_test_param.keys_shift_path);
+ rte_free(keys_non_shift_path);
rte_free(keys_ext_bkt);
rte_free(keys_ks_extbkt);
rte_free(scanned_bkts);
+ rte_hash_free(tbl_rwc_test_param.h);
return -1;
}
@@ -653,6 +656,8 @@ test_rwc_reader(__attribute__((unused)) void *arg)
cycles = rte_rdtsc_precise() - begin;
rte_atomic64_add(&gread_cycles, cycles);
rte_atomic64_add(&greads, read_cnt*loop_cnt);
+
+ rte_free(pos);
return 0;
}
@@ -1431,7 +1436,9 @@ test_hash_readwrite_lf_main(void)
rte_free(tbl_rwc_test_param.keys_ks);
rte_free(tbl_rwc_test_param.keys_absent);
rte_free(tbl_rwc_test_param.keys_shift_path);
- rte_free(scanned_bkts);
+ rte_free(tbl_rwc_test_param.keys_non_shift_path);
+ rte_free(tbl_rwc_test_param.keys_ext_bkt);
+ rte_free(tbl_rwc_test_param.keys_ks_extbkt);
return 0;
}
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 3/3] test/hash: init hash parameters in the correct function
2019-06-27 8:07 ` [dpdk-dev] [dpdk-stable] " David Marchand
@ 2019-06-28 4:55 ` Honnappa Nagarahalli
0 siblings, 0 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-28 4:55 UTC (permalink / raw)
To: David Marchand
Cc: Wang, Yipeng1, Gobriel, Sameh, Bruce Richardson, Pablo de Lara,
Dharmik Thakkar, Honnappa Nagarahalli, dev, nd, dpdk stable, nd
<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
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 2/3] test/hash: free allocated memory
2019-06-27 8:07 ` [dpdk-dev] [dpdk-stable] " David Marchand
@ 2019-06-28 4:59 ` Honnappa Nagarahalli
2019-06-28 8:36 ` David Marchand
0 siblings, 1 reply; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-06-28 4:59 UTC (permalink / raw)
To: David Marchand
Cc: Wang, Yipeng1, Gobriel, Sameh, Bruce Richardson, Pablo de Lara,
Dharmik Thakkar, Honnappa Nagarahalli, dev, nd, dpdk stable, nd
On Thu, Jun 27, 2019 at 5:25 AM Honnappa Nagarahalli <honnappa.nagarahalli@arm.com<mailto:honnappa.nagarahalli@arm.com>> wrote:
Free allocated memory.
Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
Cc: stable@dpdk.org<mailto:stable@dpdk.org>
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com<mailto:honnappa.nagarahalli@arm.com>>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com<mailto:dharmik.thakkar@arm.com>>
---
app/test/test_hash_readwrite_lf.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index e9aca6ff4..e92d1065b 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -1431,6 +1431,8 @@ test_hash_readwrite_lf_main(void)
rte_free(tbl_rwc_test_param.keys_ks);
rte_free(tbl_rwc_test_param.keys_absent);
rte_free(tbl_rwc_test_param.keys_shift_path);
+ rte_free(tbl_rwc_test_param.keys_ext_bkt);
+ rte_free(tbl_rwc_test_param.keys_ks_extbkt);
rte_free(scanned_bkts);
return 0;
}
--
2.17.1
I inspected this test a little more, I can see other leaks.
- generate_keys(), on error, we are leaking tbl_rwc_test_param.h.
- test_rwc_reader(), we are leaking pos.
- test_hash_readwrite_lf_main(), we are leaking tbl_rwc_test_param.keys_non_shift_path
[Honnappa] Thanks for the review. I fixed these and few more in V2.
Looking at your patch 1, I would prefer you reset tbl_rwc_test_param field per field to NULL once the rte_free() is called.
It would then be easier for you to track the remaining leaks (and patch 1 disappears).
[Honnappa] This can be considered as initialization code. I have left this as it is.
--
David Marchand
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH 2/3] test/hash: free allocated memory
2019-06-28 4:59 ` Honnappa Nagarahalli
@ 2019-06-28 8:36 ` David Marchand
0 siblings, 0 replies; 17+ messages in thread
From: David Marchand @ 2019-06-28 8:36 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: Wang, Yipeng1, Gobriel, Sameh, Bruce Richardson, Pablo de Lara,
Dharmik Thakkar, dev, nd, dpdk stable
On Fri, Jun 28, 2019 at 6:59 AM Honnappa Nagarahalli <
Honnappa.Nagarahalli@arm.com> wrote:
>
> On Thu, Jun 27, 2019 at 5:25 AM Honnappa Nagarahalli <
> honnappa.nagarahalli@arm.com<mailto:honnappa.nagarahalli@arm.com>> wrote:
> Free allocated memory.
>
> Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
> Cc: stable@dpdk.org<mailto:stable@dpdk.org>
>
> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com<mailto:
> honnappa.nagarahalli@arm.com>>
> Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com<mailto:
> dharmik.thakkar@arm.com>>
> ---
> app/test/test_hash_readwrite_lf.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/app/test/test_hash_readwrite_lf.c
> b/app/test/test_hash_readwrite_lf.c
> index e9aca6ff4..e92d1065b 100644
> --- a/app/test/test_hash_readwrite_lf.c
> +++ b/app/test/test_hash_readwrite_lf.c
> @@ -1431,6 +1431,8 @@ test_hash_readwrite_lf_main(void)
> rte_free(tbl_rwc_test_param.keys_ks);
> rte_free(tbl_rwc_test_param.keys_absent);
> rte_free(tbl_rwc_test_param.keys_shift_path);
> + rte_free(tbl_rwc_test_param.keys_ext_bkt);
> + rte_free(tbl_rwc_test_param.keys_ks_extbkt);
> rte_free(scanned_bkts);
> return 0;
> }
> --
> 2.17.1
>
>
> I inspected this test a little more, I can see other leaks.
> - generate_keys(), on error, we are leaking tbl_rwc_test_param.h.
> - test_rwc_reader(), we are leaking pos.
> - test_hash_readwrite_lf_main(), we are leaking
> tbl_rwc_test_param.keys_non_shift_path
> [Honnappa] Thanks for the review. I fixed these and few more in V2.
>
Still missed pos in some err path.
Comment incoming.
> Looking at your patch 1, I would prefer you reset tbl_rwc_test_param field
> per field to NULL once the rte_free() is called.
> It would then be easier for you to track the remaining leaks (and patch 1
> disappears).
> [Honnappa] This can be considered as initialization code. I have left this
> as it is.
>
Ok, I won't insist.
--
David Marchand
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH v2 3/3] test/hash: free allocated memory
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 3/3] test/hash: free allocated memory Honnappa Nagarahalli
@ 2019-06-28 8:38 ` David Marchand
0 siblings, 0 replies; 17+ messages in thread
From: David Marchand @ 2019-06-28 8:38 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: Wang, Yipeng1, Gobriel, Sameh, Bruce Richardson, Pablo de Lara,
Dharmik Thakkar, dev, nd, dpdk stable
On Fri, Jun 28, 2019 at 6:53 AM Honnappa Nagarahalli <
honnappa.nagarahalli@arm.com> wrote:
> Free allocated memory.
>
> Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
> 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 | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/app/test/test_hash_readwrite_lf.c
> b/app/test/test_hash_readwrite_lf.c
> index 12522e265..9b054dec0 100644
> --- a/app/test/test_hash_readwrite_lf.c
> +++ b/app/test/test_hash_readwrite_lf.c
>
>
[snip]
@@ -653,6 +656,8 @@ test_rwc_reader(__attribute__((unused)) void *arg)
> cycles = rte_rdtsc_precise() - begin;
> rte_atomic64_add(&gread_cycles, cycles);
> rte_atomic64_add(&greads, read_cnt*loop_cnt);
> +
> + rte_free(pos);
> return 0;
> }
>
In this function, there are three other places returning -1 without freeing
pos.
--
David Marchand
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data
2019-06-27 3:24 [dpdk-dev] [PATCH 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
` (2 preceding siblings ...)
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
@ 2019-07-02 0:27 ` Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 2/4] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
` (3 more replies)
3 siblings, 4 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-07-02 0:27 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
Reset tbl_rwc_test_param to discard data from previous run
of the test.
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>
---
v3
- No changes
V2
- No changes
app/test/test_hash_readwrite_lf.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index 343a338b4..e9aca6ff4 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -1264,6 +1264,9 @@ test_hash_readwrite_lf_main(void)
setlocale(LC_NUMERIC, "");
+ /* Reset tbl_rwc_test_param to discard values from previous run */
+ memset(&tbl_rwc_test_param, 0, sizeof(tbl_rwc_test_param));
+
if (rte_tm_supported())
htm = 1;
else
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v3 2/4] test/hash: init hash parameters in the correct function
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
@ 2019-07-02 0:27 ` Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 3/4] test/hash: free allocated memory Honnappa Nagarahalli
` (2 subsequent siblings)
3 siblings, 0 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-07-02 0:27 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
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>
---
v3
- no changes
v2
- changed the order of the patch
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 e9aca6ff4..12522e265 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
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v3 3/4] test/hash: free allocated memory
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 2/4] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
@ 2019-07-02 0:27 ` Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 4/4] test/hash: use array for small amount of memory Honnappa Nagarahalli
2019-07-05 8:46 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Thomas Monjalon
3 siblings, 0 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-07-02 0:27 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd, stable
Free allocated memory.
Fixes: 3f9aab961ed3 ("test/hash: check lock-free extendable bucket")
Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
---
v3
- removed freeing pos (addressed in 4/4)
v2
- freed more memory
app/test/test_hash_readwrite_lf.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index 12522e265..792244fd0 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -537,6 +537,7 @@ generate_keys(void)
tbl_rwc_test_param.count_keys_ks_extbkt);
rte_free(found);
+ rte_free(scanned_bkts);
rte_hash_free(tbl_rwc_test_param.h);
return 0;
@@ -547,9 +548,11 @@ generate_keys(void)
rte_free(keys_absent);
rte_free(found);
rte_free(tbl_rwc_test_param.keys_shift_path);
+ rte_free(keys_non_shift_path);
rte_free(keys_ext_bkt);
rte_free(keys_ks_extbkt);
rte_free(scanned_bkts);
+ rte_hash_free(tbl_rwc_test_param.h);
return -1;
}
@@ -1431,7 +1434,9 @@ test_hash_readwrite_lf_main(void)
rte_free(tbl_rwc_test_param.keys_ks);
rte_free(tbl_rwc_test_param.keys_absent);
rte_free(tbl_rwc_test_param.keys_shift_path);
- rte_free(scanned_bkts);
+ rte_free(tbl_rwc_test_param.keys_non_shift_path);
+ rte_free(tbl_rwc_test_param.keys_ext_bkt);
+ rte_free(tbl_rwc_test_param.keys_ks_extbkt);
return 0;
}
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* [dpdk-dev] [PATCH v3 4/4] test/hash: use array for small amount of memory
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 2/4] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 3/4] test/hash: free allocated memory Honnappa Nagarahalli
@ 2019-07-02 0:27 ` Honnappa Nagarahalli
2019-07-05 8:46 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Thomas Monjalon
3 siblings, 0 replies; 17+ messages in thread
From: Honnappa Nagarahalli @ 2019-07-02 0:27 UTC (permalink / raw)
To: yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, honnappa.nagarahalli
Cc: dharmik.thakkar, dev, nd
Variables of size 128B can make use of stack instead of dynamically
allocated memory.
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
---
v3
- Allocated pos on stack as it is just 128B
v2
- N/A
app/test/test_hash_readwrite_lf.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/app/test/test_hash_readwrite_lf.c b/app/test/test_hash_readwrite_lf.c
index 792244fd0..f0d6f42c1 100644
--- a/app/test/test_hash_readwrite_lf.c
+++ b/app/test/test_hash_readwrite_lf.c
@@ -567,16 +567,9 @@ test_rwc_reader(__attribute__((unused)) void *arg)
uint32_t read_cnt;
uint32_t *keys;
uint32_t extra_keys;
- int32_t *pos;
+ int32_t pos[BULK_LOOKUP_SIZE];
void *temp_a[BULK_LOOKUP_SIZE];
- /* Used to identify keys not inserted in the hash table */
- pos = rte_malloc(NULL, sizeof(uint32_t) * BULK_LOOKUP_SIZE, 0);
- if (pos == NULL) {
- printf("RTE_MALLOC failed\n");
- return -1;
- }
-
if (read_type & READ_FAIL) {
keys = tbl_rwc_test_param.keys_absent;
read_cnt = tbl_rwc_test_param.count_keys_absent;
--
2.17.1
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
` (2 preceding siblings ...)
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 4/4] test/hash: use array for small amount of memory Honnappa Nagarahalli
@ 2019-07-05 8:46 ` Thomas Monjalon
3 siblings, 0 replies; 17+ messages in thread
From: Thomas Monjalon @ 2019-07-05 8:46 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: dev, yipeng1.wang, sameh.gobriel, bruce.richardson,
pablo.de.lara.guarch, david.marchand, dharmik.thakkar, nd,
stable
02/07/2019 02:27, Honnappa Nagarahalli:
> Reset tbl_rwc_test_param to discard data from previous run
> of the test.
>
> 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>
Series applied, thanks
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2019-07-05 8:46 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-27 3:24 [dpdk-dev] [PATCH 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-06-27 3:24 ` [dpdk-dev] [PATCH 2/3] test/hash: free allocated memory Honnappa Nagarahalli
2019-06-27 8:07 ` [dpdk-dev] [dpdk-stable] " David Marchand
2019-06-28 4:59 ` Honnappa Nagarahalli
2019-06-28 8:36 ` David Marchand
2019-06-27 3:24 ` [dpdk-dev] [PATCH 3/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
2019-06-27 8:07 ` [dpdk-dev] [dpdk-stable] " David Marchand
2019-06-28 4:55 ` Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 1/3] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 2/3] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
2019-06-28 4:52 ` [dpdk-dev] [PATCH v2 3/3] test/hash: free allocated memory Honnappa Nagarahalli
2019-06-28 8:38 ` [dpdk-dev] [dpdk-stable] " David Marchand
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 2/4] test/hash: init hash parameters in the correct function Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 3/4] test/hash: free allocated memory Honnappa Nagarahalli
2019-07-02 0:27 ` [dpdk-dev] [PATCH v3 4/4] test/hash: use array for small amount of memory Honnappa Nagarahalli
2019-07-05 8:46 ` [dpdk-dev] [PATCH v3 1/4] test/hash: reset global variable to discard old data Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).