test/hash: split into shorter subtests
hash_readwrite test was taking too much time to complete in Travis. Test is split into functional and perf test. perf test is being moved under perf testsuites in meson. Signed-off-by: Amit Gupta <agupta3@marvell.com> Acked-by: Yipeng Wang <yipeng1.wang@intel.com> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
This commit is contained in:
parent
95d45cde11
commit
f6208425eb
@ -664,8 +664,14 @@ non_parallel_test_list = [
|
|||||||
"Report": None,
|
"Report": None,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "Hash read-write concurrency autotest",
|
"Name": "Hash read-write concurrency functional autotest",
|
||||||
"Command": "hash_readwrite_autotest",
|
"Command": "hash_readwrite_func_autotest",
|
||||||
|
"Func": default_autotest,
|
||||||
|
"Report": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Hash read-write concurrency perf autotest",
|
||||||
|
"Command": "hash_readwrite_perf_autotest",
|
||||||
"Func": default_autotest,
|
"Func": default_autotest,
|
||||||
"Report": None,
|
"Report": None,
|
||||||
},
|
},
|
||||||
|
@ -233,7 +233,7 @@ fast_test_names = [
|
|||||||
'distributor_autotest',
|
'distributor_autotest',
|
||||||
'eventdev_common_autotest',
|
'eventdev_common_autotest',
|
||||||
'fbarray_autotest',
|
'fbarray_autotest',
|
||||||
'hash_readwrite_autotest',
|
'hash_readwrite_func_autotest',
|
||||||
'hash_readwrite_lf_autotest',
|
'hash_readwrite_lf_autotest',
|
||||||
'ipsec_autotest',
|
'ipsec_autotest',
|
||||||
'kni_autotest',
|
'kni_autotest',
|
||||||
@ -282,6 +282,7 @@ perf_test_names = [
|
|||||||
'stack_perf_autotest',
|
'stack_perf_autotest',
|
||||||
'stack_lf_perf_autotest',
|
'stack_lf_perf_autotest',
|
||||||
'rand_perf_autotest',
|
'rand_perf_autotest',
|
||||||
|
'hash_readwrite_perf_autotest',
|
||||||
]
|
]
|
||||||
|
|
||||||
driver_test_names = [
|
driver_test_names = [
|
||||||
|
@ -606,7 +606,7 @@ err:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
test_hash_readwrite_main(void)
|
test_hash_rw_perf_main(void)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Variables used to choose different tests.
|
* Variables used to choose different tests.
|
||||||
@ -615,7 +615,7 @@ test_hash_readwrite_main(void)
|
|||||||
* than writer threads. This is to timing either reader threads or
|
* than writer threads. This is to timing either reader threads or
|
||||||
* writer threads for performance numbers.
|
* writer threads for performance numbers.
|
||||||
*/
|
*/
|
||||||
int use_htm, use_ext, reader_faster;
|
int use_htm, reader_faster;
|
||||||
unsigned int i = 0, core_id = 0;
|
unsigned int i = 0, core_id = 0;
|
||||||
|
|
||||||
if (rte_lcore_count() < 3) {
|
if (rte_lcore_count() < 3) {
|
||||||
@ -637,14 +637,6 @@ test_hash_readwrite_main(void)
|
|||||||
printf("Test read-write with Hardware transactional memory\n");
|
printf("Test read-write with Hardware transactional memory\n");
|
||||||
|
|
||||||
use_htm = 1;
|
use_htm = 1;
|
||||||
use_ext = 0;
|
|
||||||
|
|
||||||
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
use_ext = 1;
|
|
||||||
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
reader_faster = 1;
|
reader_faster = 1;
|
||||||
if (test_hash_readwrite_perf(&htm_results, use_htm,
|
if (test_hash_readwrite_perf(&htm_results, use_htm,
|
||||||
@ -662,13 +654,6 @@ test_hash_readwrite_main(void)
|
|||||||
|
|
||||||
printf("Test read-write without Hardware transactional memory\n");
|
printf("Test read-write without Hardware transactional memory\n");
|
||||||
use_htm = 0;
|
use_htm = 0;
|
||||||
use_ext = 0;
|
|
||||||
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
use_ext = 1;
|
|
||||||
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
reader_faster = 1;
|
reader_faster = 1;
|
||||||
if (test_hash_readwrite_perf(&non_htm_results, use_htm,
|
if (test_hash_readwrite_perf(&non_htm_results, use_htm,
|
||||||
@ -705,4 +690,64 @@ test_hash_readwrite_main(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
REGISTER_TEST_COMMAND(hash_readwrite_autotest, test_hash_readwrite_main);
|
static int
|
||||||
|
test_hash_rw_func_main(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Variables used to choose different tests.
|
||||||
|
* use_htm indicates if hardware transactional memory should be used.
|
||||||
|
* reader_faster indicates if the reader threads should finish earlier
|
||||||
|
* than writer threads. This is to timing either reader threads or
|
||||||
|
* writer threads for performance numbers.
|
||||||
|
*/
|
||||||
|
int use_htm, use_ext;
|
||||||
|
unsigned int i = 0, core_id = 0;
|
||||||
|
|
||||||
|
if (rte_lcore_count() < 3) {
|
||||||
|
printf("Not enough cores for hash_readwrite_autotest, expecting at least 3\n");
|
||||||
|
return TEST_SKIPPED;
|
||||||
|
}
|
||||||
|
|
||||||
|
RTE_LCORE_FOREACH_SLAVE(core_id) {
|
||||||
|
slave_core_ids[i] = core_id;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
|
|
||||||
|
if (rte_tm_supported()) {
|
||||||
|
printf("Hardware transactional memory (lock elision) "
|
||||||
|
"is supported\n");
|
||||||
|
|
||||||
|
printf("Test read-write with Hardware transactional memory\n");
|
||||||
|
|
||||||
|
use_htm = 1;
|
||||||
|
use_ext = 0;
|
||||||
|
|
||||||
|
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
use_ext = 1;
|
||||||
|
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
printf("Hardware transactional memory (lock elision) "
|
||||||
|
"is NOT supported\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Test read-write without Hardware transactional memory\n");
|
||||||
|
use_htm = 0;
|
||||||
|
use_ext = 0;
|
||||||
|
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
use_ext = 1;
|
||||||
|
if (test_hash_readwrite_functional(use_ext, use_htm) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
REGISTER_TEST_COMMAND(hash_readwrite_func_autotest, test_hash_rw_func_main);
|
||||||
|
REGISTER_TEST_COMMAND(hash_readwrite_perf_autotest, test_hash_rw_perf_main);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user