* [dpdk-dev] [PATCH] app/test: shorten execution time @ 2016-05-04 17:32 Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon 0 siblings, 1 reply; 7+ messages in thread From: Thomas Monjalon @ 2016-05-04 17:32 UTC (permalink / raw) To: dev The autotests are too long to be run often. This patch reduces the needed time of some tests in fast_test. The others will be analyzed when they will be able to run in a VM with a reasonnable amount of memory. The current status in a small VM is below: > make fast_test /root/dpdk/build/app/test -c f -n 4 Test name Test result Test Total ================================================================================ Start group_1: Success [00m 00s] Timer autotest: Success [00m 02s] Debug autotest: Success [00m 00s] Errno autotest: Success [00m 00s] Meter autotest: Success [00m 00s] Common autotest: Success [00m 01s] Dump log history: Success [00m 00s] Dump rings: Success [00m 00s] Dump mempools: Success [00m 00s] [00m 05s] Start group_2: Success [00m 00s] Memory autotest: Success [00m 00s] Read/write lock autotest: Success [00m 00s] Logs autotest: Success [00m 00s] CPU flags autotest: Success [00m 00s] Version autotest: Success [00m 00s] EAL filesystem autotest: Success [00m 00s] EAL flags autotest: Success [00m 05s] Hash autotest: Success [00m 00s] [00m 11s] Start group_3: Fail [No prompt] [00m 00s] LPM autotest: Fail [No prompt] [00m 00s] IVSHMEM autotest: Fail [No prompt] [00m 00s] Memcpy autotest: Fail [No prompt] [00m 00s] Memzone autotest: Fail [No prompt] [00m 00s] String autotest: Fail [No prompt] [00m 00s] Alarm autotest: Fail [No prompt] [00m 00s] [00m 11s] Start group_4: Success [00m 00s] PCI autotest: Success [00m 00s] Malloc autotest: Success [00m 00s] Multi-process autotest: Success [00m 00s] Mbuf autotest: Success [00m 02s] Per-lcore autotest: Success [00m 00s] Ring autotest: Success [00m 00s] [00m 16s] Start group_5: Success [00m 00s] Spinlock autotest: Success [00m 00s] Byte order autotest: Success [00m 00s] TAILQ autotest: Success [00m 00s] Command-line autotest: Success [00m 00s] Interrupts autotest: Success [00m 00s] [00m 18s] Start group_6: Fail [No prompt] [00m 00s] Function reentrancy autotest: Fail [No prompt] [00m 00s] Mempool autotest: Fail [No prompt] [00m 00s] Atomics autotest: Fail [No prompt] [00m 00s] Prefetch autotest: Fail [No prompt] [00m 00s] Red autotest: Fail [No prompt] [00m 00s] [00m 18s] Start group_7: Success [00m 00s] PMD ring autotest: Success [00m 00s] Access list control autotest: Success [00m 01s] Sched autotest: Success [00m 00s] [00m 20s] Start kni: Fail [No prompt] [00m 00s] KNI autotest: Fail [No prompt] [00m 00s] [00m 20s] Start mempool_perf: Success [00m 00s] Cycles autotest: Success [00m 01s] [00m 22s] Start power: Fail [No prompt] [00m 00s] Power autotest: Fail [No prompt] [00m 00s] [00m 22s] Start power_acpi_cpufreq: Fail [No prompt] [00m 00s] Power ACPI cpufreq autotest: Fail [No prompt] [00m 00s] [00m 22s] Start power_kvm_vm: Fail [No prompt] [00m 00s] Power KVM VM autotest: Fail [No prompt] [00m 00s] [00m 23s] Start timer_perf: Fail [No prompt] [00m 00s] Timer performance autotest: Fail [No prompt] [00m 00s] [00m 23s] ================================================================================ Total run time: 00m 23s Number of failed tests: 16 Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> --- app/test/autotest_test_funcs.py | 14 +++++++------- app/test/test_hash.c | 8 ++++---- app/test/test_interrupts.c | 4 ++-- app/test/test_mbuf.c | 2 +- app/test/test_per_lcore.c | 4 ++-- app/test/test_ring.c | 7 +++---- app/test/test_spinlock.c | 6 +++--- app/test/test_timer.c | 20 ++++++++++---------- 8 files changed, 32 insertions(+), 33 deletions(-) diff --git a/app/test/autotest_test_funcs.py b/app/test/autotest_test_funcs.py index f04909d..5222f6e 100644 --- a/app/test/autotest_test_funcs.py +++ b/app/test/autotest_test_funcs.py @@ -83,7 +83,7 @@ def spinlock_autotest(child, test_name): "Test Failed", "Hello from core ([0-9]*) !", "Hello from within recursive locks from ([0-9]*) !", - pexpect.TIMEOUT], timeout = 20) + pexpect.TIMEOUT], timeout = 5) # ok if index == 0: break @@ -177,9 +177,9 @@ def timer_autotest(child, test_name): i = 0 child.sendline(test_name) - index = child.expect(["Start timer stress tests \(20 seconds\)", + index = child.expect(["Start timer stress tests", "Test Failed", - pexpect.TIMEOUT], timeout = 10) + pexpect.TIMEOUT], timeout = 5) if index == 1: return -1, "Fail" @@ -188,16 +188,16 @@ def timer_autotest(child, test_name): index = child.expect(["Start timer stress tests 2", "Test Failed", - pexpect.TIMEOUT], timeout = 40) + pexpect.TIMEOUT], timeout = 5) if index == 1: return -1, "Fail" elif index == 2: return -1, "Fail [Timeout]" - index = child.expect(["Start timer basic tests \(20 seconds\)", + index = child.expect(["Start timer basic tests", "Test Failed", - pexpect.TIMEOUT], timeout = 20) + pexpect.TIMEOUT], timeout = 5) if index == 1: return -1, "Fail" @@ -277,7 +277,7 @@ def timer_autotest(child, test_name): def ring_autotest(child, test_name): child.sendline(test_name) index = child.expect(["Test OK", "Test Failed", - pexpect.TIMEOUT], timeout = 15) + pexpect.TIMEOUT], timeout = 2) if index == 1: return -1, "Fail" elif index == 2: diff --git a/app/test/test_hash.c b/app/test/test_hash.c index 61fc0a0..7e41725 100644 --- a/app/test/test_hash.c +++ b/app/test/test_hash.c @@ -176,7 +176,7 @@ static struct rte_hash_parameters ut_params = { .socket_id = 0, }; -#define CRC32_ITERATIONS (1U << 20) +#define CRC32_ITERATIONS (1U << 10) #define CRC32_DWORDS (1U << 6) /* * Test if all CRC32 implementations yield the same hash value @@ -1081,7 +1081,7 @@ test_hash_creation_with_good_parameters(void) return 0; } -#define ITERATIONS 50 +#define ITERATIONS 3 /* * Test to see the average table utilization (entries added/max entries) * before hitting a random entry that cannot be added @@ -1098,7 +1098,7 @@ static int test_average_table_utilization(void) "\n before adding elements begins to fail\n"); printf("Measuring performance, please wait"); fflush(stdout); - ut_params.entries = 1 << 20; + ut_params.entries = 1 << 16; ut_params.name = "test_average_utilization"; ut_params.hash_func = rte_jhash; handle = rte_hash_create(&ut_params); @@ -1138,7 +1138,7 @@ static int test_average_table_utilization(void) return 0; } -#define NUM_ENTRIES 1024 +#define NUM_ENTRIES 256 static int test_hash_iteration(void) { struct rte_hash *handle; diff --git a/app/test/test_interrupts.c b/app/test/test_interrupts.c index 6e3dec3..df6d261 100644 --- a/app/test/test_interrupts.c +++ b/app/test/test_interrupts.c @@ -41,7 +41,7 @@ #include "test.h" -#define TEST_INTERRUPT_CHECK_INTERVAL 1000 /* ms */ +#define TEST_INTERRUPT_CHECK_INTERVAL 100 /* ms */ /* predefined interrupt handle types */ enum test_interrupt_handle_type { @@ -372,7 +372,7 @@ test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type) if (test_interrupt_trigger_interrupt() < 0) return -1; - /* check flag in 3 seconds */ + /* check flag */ for (count = 0; flag == 0 && count < 3; count++) rte_delay_ms(TEST_INTERRUPT_CHECK_INTERVAL); diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index 98ff93a..59f9979 100644 --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -748,7 +748,7 @@ test_refcnt_iter(unsigned lcore, unsigned iter) __func__, lcore, iter, tref); return; } - rte_delay_ms(1000); + rte_delay_ms(100); } rte_panic("(lcore=%u, iter=%u): after %us only " diff --git a/app/test/test_per_lcore.c b/app/test/test_per_lcore.c index b16449a..f452cdb 100644 --- a/app/test/test_per_lcore.c +++ b/app/test/test_per_lcore.c @@ -92,8 +92,8 @@ display_vars(__attribute__((unused)) void *arg) static int test_per_lcore_delay(__attribute__((unused)) void *arg) { - rte_delay_ms(5000); - printf("wait 5000ms on lcore %u\n", rte_lcore_id()); + rte_delay_ms(100); + printf("wait 100ms on lcore %u\n", rte_lcore_id()); return 0; } diff --git a/app/test/test_ring.c b/app/test/test_ring.c index 0d7523e..d18812e 100644 --- a/app/test/test_ring.c +++ b/app/test/test_ring.c @@ -101,7 +101,6 @@ #define RING_SIZE 4096 #define MAX_BULK 32 #define N 65536 -#define TIME_S 5 static rte_atomic32_t synchro; @@ -130,7 +129,7 @@ check_live_watermark_change(__attribute__((unused)) void *dummy) /* init the object table */ memset(obj_table, 0, sizeof(obj_table)); - end_time = rte_get_timer_cycles() + (hz * 2); + end_time = rte_get_timer_cycles() + (hz / 4); /* check that bulk and watermark are 4 and 32 (respectively) */ while (diff >= 0) { @@ -194,9 +193,9 @@ test_live_watermark_change(void) * watermark and quota */ rte_eal_remote_launch(check_live_watermark_change, NULL, lcore_id2); - rte_delay_ms(1000); + rte_delay_ms(100); rte_ring_set_water_mark(r, 32); - rte_delay_ms(1000); + rte_delay_ms(100); if (rte_eal_wait_lcore(lcore_id2) < 0) return -1; diff --git a/app/test/test_spinlock.c b/app/test/test_spinlock.c index 16ced7f..180d6de 100644 --- a/app/test/test_spinlock.c +++ b/app/test/test_spinlock.c @@ -129,7 +129,7 @@ test_spinlock_recursive_per_core(__attribute__((unused)) void *arg) static rte_spinlock_t lk = RTE_SPINLOCK_INITIALIZER; static uint64_t lock_count[RTE_MAX_LCORE] = {0}; -#define TIME_S 5 +#define TIME_MS 100 static int load_loop_fn(void *func_param) @@ -145,7 +145,7 @@ load_loop_fn(void *func_param) while (rte_atomic32_read(&synchro) == 0); begin = rte_get_timer_cycles(); - while (time_diff / hz < TIME_S) { + while (time_diff < hz * TIME_MS / 1000) { if (use_lock) rte_spinlock_lock(&lk); lcount++; @@ -258,7 +258,7 @@ test_spinlock(void) RTE_LCORE_FOREACH_SLAVE(i) { rte_spinlock_unlock(&sl_tab[i]); - rte_delay_ms(100); + rte_delay_ms(10); } rte_eal_mp_wait_lcore(); diff --git a/app/test/test_timer.c b/app/test/test_timer.c index 944e2ad..bc07925 100644 --- a/app/test/test_timer.c +++ b/app/test/test_timer.c @@ -137,7 +137,7 @@ #include <rte_random.h> #include <rte_malloc.h> -#define TEST_DURATION_S 20 /* in seconds */ +#define TEST_DURATION_S 1 /* in seconds */ #define NB_TIMER 4 #define RTE_LOGTYPE_TESTTIMER RTE_LOGTYPE_USER3 @@ -305,7 +305,7 @@ timer_stress2_main_loop(__attribute__((unused)) void *arg) { static struct rte_timer *timers; int i, ret; - uint64_t delay = rte_get_timer_hz() / 4; + uint64_t delay = rte_get_timer_hz() / 20; unsigned lcore_id = rte_lcore_id(); unsigned master = rte_get_master_lcore(); int32_t my_collisions = 0; @@ -346,7 +346,7 @@ timer_stress2_main_loop(__attribute__((unused)) void *arg) rte_atomic32_add(&collisions, my_collisions); /* wait long enough for timers to expire */ - rte_delay_ms(500); + rte_delay_ms(100); /* all cores rendezvous */ if (lcore_id == master) { @@ -396,7 +396,7 @@ timer_stress2_main_loop(__attribute__((unused)) void *arg) } /* wait long enough for timers to expire */ - rte_delay_ms(500); + rte_delay_ms(100); /* now check that we get the right number of callbacks */ if (lcore_id == master) { @@ -495,13 +495,13 @@ timer_basic_main_loop(__attribute__((unused)) void *arg) /* launch all timers on core 0 */ if (lcore_id == rte_get_master_lcore()) { - mytimer_reset(&mytiminfo[0], hz, SINGLE, lcore_id, + mytimer_reset(&mytiminfo[0], hz/4, SINGLE, lcore_id, timer_basic_cb); - mytimer_reset(&mytiminfo[1], hz*2, SINGLE, lcore_id, + mytimer_reset(&mytiminfo[1], hz/2, SINGLE, lcore_id, timer_basic_cb); - mytimer_reset(&mytiminfo[2], hz, PERIODICAL, lcore_id, + mytimer_reset(&mytiminfo[2], hz/4, PERIODICAL, lcore_id, timer_basic_cb); - mytimer_reset(&mytiminfo[3], hz, PERIODICAL, + mytimer_reset(&mytiminfo[3], hz/4, PERIODICAL, rte_get_next_lcore(lcore_id, 0, 1), timer_basic_cb); } @@ -591,7 +591,7 @@ test_timer(void) end_time = cur_time + (hz * TEST_DURATION_S); /* start other cores */ - printf("Start timer stress tests (%d seconds)\n", TEST_DURATION_S); + printf("Start timer stress tests\n"); rte_eal_mp_remote_launch(timer_stress_main_loop, NULL, CALL_MASTER); rte_eal_mp_wait_lcore(); @@ -612,7 +612,7 @@ test_timer(void) end_time = cur_time + (hz * TEST_DURATION_S); /* start other cores */ - printf("\nStart timer basic tests (%d seconds)\n", TEST_DURATION_S); + printf("\nStart timer basic tests\n"); rte_eal_mp_remote_launch(timer_basic_main_loop, NULL, CALL_MASTER); rte_eal_mp_wait_lcore(); -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints 2016-05-04 17:32 [dpdk-dev] [PATCH] app/test: shorten execution time Thomas Monjalon @ 2016-05-11 14:26 ` Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 1/4] app/test: shorten execution time Thomas Monjalon ` (4 more replies) 0 siblings, 5 replies; 7+ messages in thread From: Thomas Monjalon @ 2016-05-11 14:26 UTC (permalink / raw) To: dev In order to make autotests easy to run often, the time and memory constraints are reduced. These patches depend on the LPM autotest split. The current status in a small VM is below: > make fast_test /root/dpdk/build/app/test -c f -n 4 Test name Test result Test Total ==================================================================== Start group_1: Success [00m 01s] Cycles autotest: Success [00m 01s] Timer autotest: Success [00m 03s] Debug autotest: Success [00m 00s] Errno autotest: Success [00m 00s] Meter autotest: Success [00m 00s] Common autotest: Success [00m 00s] Dump log history: Success [00m 00s] Dump rings: Success [00m 00s] Dump mempools: Success [00m 00s] [00m 07s] Start group_2: Success [00m 00s] Memory autotest: Success [00m 00s] Read/write lock autotest: Success [00m 00s] Logs autotest: Success [00m 00s] CPU flags autotest: Success [00m 00s] Version autotest: Success [00m 00s] EAL filesystem autotest: Success [00m 00s] EAL flags autotest: Success [00m 05s] Hash autotest: Success [00m 00s] [00m 14s] Start group_3: Success [00m 00s] LPM autotest: Success [00m 01s] LPM6 autotest: Success [00m 04s] IVSHMEM autotest: Fail [Not found] [00m 00s] Memcpy autotest: Success [00m 08s] Memzone autotest: Success [00m 00s] String autotest: Success [00m 00s] Alarm autotest: Success [00m 00s] [00m 29s] Start group_4: Success [00m 00s] PCI autotest: Success [00m 00s] Malloc autotest: Success [00m 00s] Multi-process autotest: Success [00m 00s] Mbuf autotest: Success [00m 01s] Per-lcore autotest: Success [00m 00s] Ring autotest: Success [00m 00s] [00m 32s] Start group_5: Success [00m 00s] Spinlock autotest: Success [00m 00s] Byte order autotest: Success [00m 00s] TAILQ autotest: Success [00m 00s] Command-line autotest: Success [00m 00s] Interrupts autotest: Success [00m 00s] [00m 34s] Start group_6: Success [00m 00s] Function reentrancy autotest: Fail [00m 00s] Mempool autotest: Success [00m 00s] Atomics autotest: Success [00m 00s] Prefetch autotest: Success [00m 00s] Red autotest: Success [01m 36s] [02m 13s] Start group_7: Success [00m 00s] PMD ring autotest: Success [00m 00s] Access list control autotest: Success [00m 01s] Sched autotest: Success [00m 00s] [02m 15s] Start kni: Fail [No prompt] [00m 00s] KNI autotest: Fail [No prompt] [00m 00s] [02m 15s] Start power: Success [00m 00s] Power autotest: Success [00m 00s] [02m 16s] Start power_acpi_cpufreq: Success [00m 00s] Power ACPI cpufreq autotest: Fail [00m 00s] [02m 16s] Start power_kvm_vm: Success [00m 00s] Power KVM VM autotest: Fail [00m 00s] [02m 17s] ==================================================================== Total run time: 02m 17s Number of failed tests: 5 The RED autotest needs some work. Thomas Monjalon (4): app/test: shorten execution time app/test: reduce memory needs app/test: remove unused constants app/test: move cycles autotest to first group app/test/autotest_data.py | 26 +++++++++++----------- app/test/autotest_test_funcs.py | 14 ++++++------ app/test/test_alarm.c | 48 ++++++++++++++++++++--------------------- app/test/test_hash.c | 8 +++---- app/test/test_interrupts.c | 4 ++-- app/test/test_lpm6.c | 37 +++++++++++++------------------ app/test/test_mbuf.c | 2 +- app/test/test_memcpy.c | 15 ------------- app/test/test_mempool.c | 8 +++---- app/test/test_per_lcore.c | 4 ++-- app/test/test_ring.c | 8 +++---- app/test/test_spinlock.c | 6 +++--- app/test/test_timer.c | 20 ++++++++--------- 13 files changed, 87 insertions(+), 113 deletions(-) -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH v2 1/4] app/test: shorten execution time 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon @ 2016-05-11 14:26 ` Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 2/4] app/test: reduce memory needs Thomas Monjalon ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2016-05-11 14:26 UTC (permalink / raw) To: dev The autotests are too long to be run often. This patch reduces the needed time of some tests in fast_test. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> --- app/test/autotest_test_funcs.py | 14 ++++++------ app/test/test_alarm.c | 48 ++++++++++++++++++++--------------------- app/test/test_hash.c | 8 +++---- app/test/test_interrupts.c | 4 ++-- app/test/test_lpm6.c | 35 +++++++++++++----------------- app/test/test_mbuf.c | 2 +- app/test/test_mempool.c | 6 +++--- app/test/test_per_lcore.c | 4 ++-- app/test/test_ring.c | 6 +++--- app/test/test_spinlock.c | 6 +++--- app/test/test_timer.c | 20 ++++++++--------- 11 files changed, 74 insertions(+), 79 deletions(-) diff --git a/app/test/autotest_test_funcs.py b/app/test/autotest_test_funcs.py index f04909d..5222f6e 100644 --- a/app/test/autotest_test_funcs.py +++ b/app/test/autotest_test_funcs.py @@ -83,7 +83,7 @@ def spinlock_autotest(child, test_name): "Test Failed", "Hello from core ([0-9]*) !", "Hello from within recursive locks from ([0-9]*) !", - pexpect.TIMEOUT], timeout = 20) + pexpect.TIMEOUT], timeout = 5) # ok if index == 0: break @@ -177,9 +177,9 @@ def timer_autotest(child, test_name): i = 0 child.sendline(test_name) - index = child.expect(["Start timer stress tests \(20 seconds\)", + index = child.expect(["Start timer stress tests", "Test Failed", - pexpect.TIMEOUT], timeout = 10) + pexpect.TIMEOUT], timeout = 5) if index == 1: return -1, "Fail" @@ -188,16 +188,16 @@ def timer_autotest(child, test_name): index = child.expect(["Start timer stress tests 2", "Test Failed", - pexpect.TIMEOUT], timeout = 40) + pexpect.TIMEOUT], timeout = 5) if index == 1: return -1, "Fail" elif index == 2: return -1, "Fail [Timeout]" - index = child.expect(["Start timer basic tests \(20 seconds\)", + index = child.expect(["Start timer basic tests", "Test Failed", - pexpect.TIMEOUT], timeout = 20) + pexpect.TIMEOUT], timeout = 5) if index == 1: return -1, "Fail" @@ -277,7 +277,7 @@ def timer_autotest(child, test_name): def ring_autotest(child, test_name): child.sendline(test_name) index = child.expect(["Test OK", "Test Failed", - pexpect.TIMEOUT], timeout = 15) + pexpect.TIMEOUT], timeout = 2) if index == 1: return -1, "Fail" elif index == 2: diff --git a/app/test/test_alarm.c b/app/test/test_alarm.c index 5d6f4a2..d83591c 100644 --- a/app/test/test_alarm.c +++ b/app/test/test_alarm.c @@ -45,8 +45,8 @@ #define US_PER_MS 1000 -#define RTE_TEST_ALARM_TIMEOUT 3000 /* ms */ -#define RTE_TEST_CHECK_PERIOD 1000 /* ms */ +#define RTE_TEST_ALARM_TIMEOUT 10 /* ms */ +#define RTE_TEST_CHECK_PERIOD 3 /* ms */ static volatile int flag; @@ -100,17 +100,17 @@ test_multi_alarms(void) printf("Expect 6 callbacks in order...\n"); /* add two alarms in order */ - rte_eal_alarm_set(1000 * US_PER_MS, test_multi_cb, (void *)1); - rte_eal_alarm_set(2000 * US_PER_MS, test_multi_cb, (void *)2); + rte_eal_alarm_set(10 * US_PER_MS, test_multi_cb, (void *)1); + rte_eal_alarm_set(20 * US_PER_MS, test_multi_cb, (void *)2); /* now add in reverse order */ - rte_eal_alarm_set(6000 * US_PER_MS, test_multi_cb, (void *)6); - rte_eal_alarm_set(5000 * US_PER_MS, test_multi_cb, (void *)5); - rte_eal_alarm_set(4000 * US_PER_MS, test_multi_cb, (void *)4); - rte_eal_alarm_set(3000 * US_PER_MS, test_multi_cb, (void *)3); + rte_eal_alarm_set(60 * US_PER_MS, test_multi_cb, (void *)6); + rte_eal_alarm_set(50 * US_PER_MS, test_multi_cb, (void *)5); + rte_eal_alarm_set(40 * US_PER_MS, test_multi_cb, (void *)4); + rte_eal_alarm_set(30 * US_PER_MS, test_multi_cb, (void *)3); /* wait for expiry */ - rte_delay_ms(6500); + rte_delay_ms(65); if (cb_count.cnt != 6) { printf("Missing callbacks\n"); /* remove any callbacks that might remain */ @@ -121,12 +121,12 @@ test_multi_alarms(void) cb_count.cnt = 0; printf("Expect only callbacks with args 1 and 3...\n"); /* Add 3 flags, then delete one */ - rte_eal_alarm_set(3000 * US_PER_MS, test_multi_cb, (void *)3); - rte_eal_alarm_set(2000 * US_PER_MS, test_multi_cb, (void *)2); - rte_eal_alarm_set(1000 * US_PER_MS, test_multi_cb, (void *)1); + rte_eal_alarm_set(30 * US_PER_MS, test_multi_cb, (void *)3); + rte_eal_alarm_set(20 * US_PER_MS, test_multi_cb, (void *)2); + rte_eal_alarm_set(10 * US_PER_MS, test_multi_cb, (void *)1); rm_count = rte_eal_alarm_cancel(test_multi_cb, (void *)2); - rte_delay_ms(3500); + rte_delay_ms(35); if (cb_count.cnt != 2 || rm_count != 1) { printf("Error: invalid flags count or alarm removal failure" " - flags value = %d, expected = %d\n", @@ -138,9 +138,9 @@ test_multi_alarms(void) printf("Testing adding and then removing multiple alarms\n"); /* finally test that no callbacks are called if we delete them all*/ - rte_eal_alarm_set(1000 * US_PER_MS, test_multi_cb, (void *)1); - rte_eal_alarm_set(1000 * US_PER_MS, test_multi_cb, (void *)2); - rte_eal_alarm_set(1000 * US_PER_MS, test_multi_cb, (void *)3); + rte_eal_alarm_set(10 * US_PER_MS, test_multi_cb, (void *)1); + rte_eal_alarm_set(10 * US_PER_MS, test_multi_cb, (void *)2); + rte_eal_alarm_set(10 * US_PER_MS, test_multi_cb, (void *)3); rm_count = rte_eal_alarm_cancel(test_alarm_callback, (void *)-1); if (rm_count != 0) { printf("Error removing non-existant alarm succeeded\n"); @@ -157,19 +157,19 @@ test_multi_alarms(void) * Also test that we can cancel head-of-line callbacks ok.*/ flag = 0; recursive_error = 0; - rte_eal_alarm_set(1000 * US_PER_MS, test_remove_in_callback, (void *)1); - rte_eal_alarm_set(2000 * US_PER_MS, test_remove_in_callback, (void *)2); + rte_eal_alarm_set(10 * US_PER_MS, test_remove_in_callback, (void *)1); + rte_eal_alarm_set(20 * US_PER_MS, test_remove_in_callback, (void *)2); rm_count = rte_eal_alarm_cancel(test_remove_in_callback, (void *)1); if (rm_count != 1) { printf("Error cancelling head-of-list callback\n"); return -1; } - rte_delay_ms(1500); + rte_delay_ms(15); if (flag != 0) { printf("Error, cancelling head-of-list leads to premature callback\n"); return -1; } - rte_delay_ms(1000); + rte_delay_ms(10); if (flag != 2) { printf("Error - expected callback not called\n"); rte_eal_alarm_cancel(test_remove_in_callback, (void *)-1); @@ -181,10 +181,10 @@ test_multi_alarms(void) /* Check if it can cancel all for the same callback */ printf("Testing canceling all for the same callback\n"); flag_2 = 0; - rte_eal_alarm_set(1000 * US_PER_MS, test_remove_in_callback, (void *)1); - rte_eal_alarm_set(2000 * US_PER_MS, test_remove_in_callback_2, (void *)2); - rte_eal_alarm_set(3000 * US_PER_MS, test_remove_in_callback_2, (void *)3); - rte_eal_alarm_set(4000 * US_PER_MS, test_remove_in_callback, (void *)4); + rte_eal_alarm_set(10 * US_PER_MS, test_remove_in_callback, (void *)1); + rte_eal_alarm_set(20 * US_PER_MS, test_remove_in_callback_2, (void *)2); + rte_eal_alarm_set(30 * US_PER_MS, test_remove_in_callback_2, (void *)3); + rte_eal_alarm_set(40 * US_PER_MS, test_remove_in_callback, (void *)4); rm_count = rte_eal_alarm_cancel(test_remove_in_callback_2, (void *)-1); if (rm_count != 2) { printf("Error, cannot cancel all for the same callback\n"); diff --git a/app/test/test_hash.c b/app/test/test_hash.c index 61fc0a0..7e41725 100644 --- a/app/test/test_hash.c +++ b/app/test/test_hash.c @@ -176,7 +176,7 @@ static struct rte_hash_parameters ut_params = { .socket_id = 0, }; -#define CRC32_ITERATIONS (1U << 20) +#define CRC32_ITERATIONS (1U << 10) #define CRC32_DWORDS (1U << 6) /* * Test if all CRC32 implementations yield the same hash value @@ -1081,7 +1081,7 @@ test_hash_creation_with_good_parameters(void) return 0; } -#define ITERATIONS 50 +#define ITERATIONS 3 /* * Test to see the average table utilization (entries added/max entries) * before hitting a random entry that cannot be added @@ -1098,7 +1098,7 @@ static int test_average_table_utilization(void) "\n before adding elements begins to fail\n"); printf("Measuring performance, please wait"); fflush(stdout); - ut_params.entries = 1 << 20; + ut_params.entries = 1 << 16; ut_params.name = "test_average_utilization"; ut_params.hash_func = rte_jhash; handle = rte_hash_create(&ut_params); @@ -1138,7 +1138,7 @@ static int test_average_table_utilization(void) return 0; } -#define NUM_ENTRIES 1024 +#define NUM_ENTRIES 256 static int test_hash_iteration(void) { struct rte_hash *handle; diff --git a/app/test/test_interrupts.c b/app/test/test_interrupts.c index 6e3dec3..df6d261 100644 --- a/app/test/test_interrupts.c +++ b/app/test/test_interrupts.c @@ -41,7 +41,7 @@ #include "test.h" -#define TEST_INTERRUPT_CHECK_INTERVAL 1000 /* ms */ +#define TEST_INTERRUPT_CHECK_INTERVAL 100 /* ms */ /* predefined interrupt handle types */ enum test_interrupt_handle_type { @@ -372,7 +372,7 @@ test_interrupt_full_path_check(enum test_interrupt_handle_type intr_type) if (test_interrupt_trigger_interrupt() < 0) return -1; - /* check flag in 3 seconds */ + /* check flag */ for (count = 0; flag == 0 && count < 3; count++) rte_delay_ms(TEST_INTERRUPT_CHECK_INTERVAL); diff --git a/app/test/test_lpm6.c b/app/test/test_lpm6.c index 9163cd7..9545982 100644 --- a/app/test/test_lpm6.c +++ b/app/test/test_lpm6.c @@ -220,7 +220,7 @@ test1(void) } /* - * Create lpm table then delete lpm table 100 times + * Create lpm table then delete lpm table 20 times * Use a slightly different rules size each time */ int32_t @@ -234,7 +234,7 @@ test2(void) config.flags = 0; /* rte_lpm6_free: Free NULL */ - for (i = 0; i < 100; i++) { + for (i = 0; i < 20; i++) { config.max_rules = MAX_RULES - i; lpm = rte_lpm6_create(__func__, SOCKET_ID_ANY, &config); TEST_LPM_ASSERT(lpm != NULL); @@ -693,7 +693,7 @@ test13(void) } /* - * Add 2^16 routes with different first 16 bits and depth 25. + * Add 2^12 routes with different first 12 bits and depth 25. * Add one more route with the same depth and check that results in a failure. * After that delete the last rule and create the one that was attempted to be * created. This checks tbl8 exhaustion. @@ -706,10 +706,10 @@ test14(void) uint8_t ip[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; uint8_t depth = 25, next_hop_add = 100; int32_t status = 0; - int i, j; + int i; config.max_rules = MAX_RULES; - config.number_tbl8s = NUMBER_TBL8S; + config.number_tbl8s = 256; config.flags = 0; lpm = rte_lpm6_create(__func__, SOCKET_ID_ANY, &config); @@ -717,28 +717,22 @@ test14(void) for (i = 0; i < 256; i++) { ip[0] = (uint8_t)i; - for (j = 0; j < 256; j++) { - ip[1] = (uint8_t)j; - status = rte_lpm6_add(lpm, ip, depth, next_hop_add); - TEST_LPM_ASSERT(status == 0); - } + status = rte_lpm6_add(lpm, ip, depth, next_hop_add); + TEST_LPM_ASSERT(status == 0); } ip[0] = 255; - ip[1] = 255; - ip[2] = 1; + ip[1] = 1; status = rte_lpm6_add(lpm, ip, depth, next_hop_add); TEST_LPM_ASSERT(status == -ENOSPC); ip[0] = 255; - ip[1] = 255; - ip[2] = 0; + ip[1] = 0; status = rte_lpm6_delete(lpm, ip, depth); TEST_LPM_ASSERT(status == 0); ip[0] = 255; - ip[1] = 255; - ip[2] = 1; + ip[1] = 1; status = rte_lpm6_add(lpm, ip, depth, next_hop_add); TEST_LPM_ASSERT(status == 0); @@ -847,7 +841,7 @@ test17(void) TEST_LPM_ASSERT(lpm != NULL); /* Loop with rte_lpm6_add. */ - for (depth = 1; depth <= 128; depth++) { + for (depth = 1; depth <= 16; depth++) { /* Let the next_hop_add value = depth. Just for change. */ next_hop_add = depth; @@ -864,7 +858,7 @@ test17(void) } /* Loop with rte_lpm6_delete. */ - for (depth = 128; depth >= 1; depth--) { + for (depth = 16; depth >= 1; depth--) { next_hop_add = (uint8_t) (depth - 1); status = rte_lpm6_delete(lpm, ip2, depth); @@ -1493,7 +1487,7 @@ test22(void) /* * Add an extended rule (i.e. depth greater than 24, lookup (hit), delete, - * lookup (miss) in a for loop of 1000 times. This will check tbl8 extension + * lookup (miss) in a for loop of 30 times. This will check tbl8 extension * and contraction. */ int32_t @@ -1517,7 +1511,7 @@ test23(void) depth = 128; next_hop_add = 100; - for (i = 0; i < 1000; i++) { + for (i = 0; i < 30; i++) { status = rte_lpm6_add(lpm, ip, depth, next_hop_add); TEST_LPM_ASSERT(status == 0); @@ -1760,6 +1754,7 @@ test_lpm6(void) int status = -1, global_status = 0; for (i = 0; i < NUM_LPM6_TESTS; i++) { + printf("# test %02d\n", i); status = tests6[i](); if (status < 0) { diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index 98ff93a..59f9979 100644 --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -748,7 +748,7 @@ test_refcnt_iter(unsigned lcore, unsigned iter) __func__, lcore, iter, tref); return; } - rte_delay_ms(1000); + rte_delay_ms(100); } rte_panic("(lcore=%u, iter=%u): after %us only " diff --git a/app/test/test_mempool.c b/app/test/test_mempool.c index f0f823b..893d5d0 100644 --- a/app/test/test_mempool.c +++ b/app/test/test_mempool.c @@ -74,7 +74,7 @@ #define N 65536 #define TIME_S 5 #define MEMPOOL_ELT_SIZE 2048 -#define MAX_KEEP 128 +#define MAX_KEEP 16 #define MEMPOOL_SIZE ((rte_lcore_count()*(MAX_KEEP+RTE_MEMPOOL_CACHE_MAX_SIZE))-1) static struct rte_mempool *mp; @@ -222,7 +222,7 @@ static int test_mempool_single_producer(void) unsigned int i; void *obj = NULL; uint64_t start_cycles, end_cycles; - uint64_t duration = rte_get_timer_hz() * 8; + uint64_t duration = rte_get_timer_hz() / 4; start_cycles = rte_get_timer_cycles(); while (1) { @@ -262,7 +262,7 @@ static int test_mempool_single_consumer(void) unsigned int i; void * obj; uint64_t start_cycles, end_cycles; - uint64_t duration = rte_get_timer_hz() * 5; + uint64_t duration = rte_get_timer_hz() / 8; start_cycles = rte_get_timer_cycles(); while (1) { diff --git a/app/test/test_per_lcore.c b/app/test/test_per_lcore.c index b16449a..f452cdb 100644 --- a/app/test/test_per_lcore.c +++ b/app/test/test_per_lcore.c @@ -92,8 +92,8 @@ display_vars(__attribute__((unused)) void *arg) static int test_per_lcore_delay(__attribute__((unused)) void *arg) { - rte_delay_ms(5000); - printf("wait 5000ms on lcore %u\n", rte_lcore_id()); + rte_delay_ms(100); + printf("wait 100ms on lcore %u\n", rte_lcore_id()); return 0; } diff --git a/app/test/test_ring.c b/app/test/test_ring.c index 0d7523e..4f8dc8f 100644 --- a/app/test/test_ring.c +++ b/app/test/test_ring.c @@ -130,7 +130,7 @@ check_live_watermark_change(__attribute__((unused)) void *dummy) /* init the object table */ memset(obj_table, 0, sizeof(obj_table)); - end_time = rte_get_timer_cycles() + (hz * 2); + end_time = rte_get_timer_cycles() + (hz / 4); /* check that bulk and watermark are 4 and 32 (respectively) */ while (diff >= 0) { @@ -194,9 +194,9 @@ test_live_watermark_change(void) * watermark and quota */ rte_eal_remote_launch(check_live_watermark_change, NULL, lcore_id2); - rte_delay_ms(1000); + rte_delay_ms(100); rte_ring_set_water_mark(r, 32); - rte_delay_ms(1000); + rte_delay_ms(100); if (rte_eal_wait_lcore(lcore_id2) < 0) return -1; diff --git a/app/test/test_spinlock.c b/app/test/test_spinlock.c index 16ced7f..180d6de 100644 --- a/app/test/test_spinlock.c +++ b/app/test/test_spinlock.c @@ -129,7 +129,7 @@ test_spinlock_recursive_per_core(__attribute__((unused)) void *arg) static rte_spinlock_t lk = RTE_SPINLOCK_INITIALIZER; static uint64_t lock_count[RTE_MAX_LCORE] = {0}; -#define TIME_S 5 +#define TIME_MS 100 static int load_loop_fn(void *func_param) @@ -145,7 +145,7 @@ load_loop_fn(void *func_param) while (rte_atomic32_read(&synchro) == 0); begin = rte_get_timer_cycles(); - while (time_diff / hz < TIME_S) { + while (time_diff < hz * TIME_MS / 1000) { if (use_lock) rte_spinlock_lock(&lk); lcount++; @@ -258,7 +258,7 @@ test_spinlock(void) RTE_LCORE_FOREACH_SLAVE(i) { rte_spinlock_unlock(&sl_tab[i]); - rte_delay_ms(100); + rte_delay_ms(10); } rte_eal_mp_wait_lcore(); diff --git a/app/test/test_timer.c b/app/test/test_timer.c index 944e2ad..bc07925 100644 --- a/app/test/test_timer.c +++ b/app/test/test_timer.c @@ -137,7 +137,7 @@ #include <rte_random.h> #include <rte_malloc.h> -#define TEST_DURATION_S 20 /* in seconds */ +#define TEST_DURATION_S 1 /* in seconds */ #define NB_TIMER 4 #define RTE_LOGTYPE_TESTTIMER RTE_LOGTYPE_USER3 @@ -305,7 +305,7 @@ timer_stress2_main_loop(__attribute__((unused)) void *arg) { static struct rte_timer *timers; int i, ret; - uint64_t delay = rte_get_timer_hz() / 4; + uint64_t delay = rte_get_timer_hz() / 20; unsigned lcore_id = rte_lcore_id(); unsigned master = rte_get_master_lcore(); int32_t my_collisions = 0; @@ -346,7 +346,7 @@ timer_stress2_main_loop(__attribute__((unused)) void *arg) rte_atomic32_add(&collisions, my_collisions); /* wait long enough for timers to expire */ - rte_delay_ms(500); + rte_delay_ms(100); /* all cores rendezvous */ if (lcore_id == master) { @@ -396,7 +396,7 @@ timer_stress2_main_loop(__attribute__((unused)) void *arg) } /* wait long enough for timers to expire */ - rte_delay_ms(500); + rte_delay_ms(100); /* now check that we get the right number of callbacks */ if (lcore_id == master) { @@ -495,13 +495,13 @@ timer_basic_main_loop(__attribute__((unused)) void *arg) /* launch all timers on core 0 */ if (lcore_id == rte_get_master_lcore()) { - mytimer_reset(&mytiminfo[0], hz, SINGLE, lcore_id, + mytimer_reset(&mytiminfo[0], hz/4, SINGLE, lcore_id, timer_basic_cb); - mytimer_reset(&mytiminfo[1], hz*2, SINGLE, lcore_id, + mytimer_reset(&mytiminfo[1], hz/2, SINGLE, lcore_id, timer_basic_cb); - mytimer_reset(&mytiminfo[2], hz, PERIODICAL, lcore_id, + mytimer_reset(&mytiminfo[2], hz/4, PERIODICAL, lcore_id, timer_basic_cb); - mytimer_reset(&mytiminfo[3], hz, PERIODICAL, + mytimer_reset(&mytiminfo[3], hz/4, PERIODICAL, rte_get_next_lcore(lcore_id, 0, 1), timer_basic_cb); } @@ -591,7 +591,7 @@ test_timer(void) end_time = cur_time + (hz * TEST_DURATION_S); /* start other cores */ - printf("Start timer stress tests (%d seconds)\n", TEST_DURATION_S); + printf("Start timer stress tests\n"); rte_eal_mp_remote_launch(timer_stress_main_loop, NULL, CALL_MASTER); rte_eal_mp_wait_lcore(); @@ -612,7 +612,7 @@ test_timer(void) end_time = cur_time + (hz * TEST_DURATION_S); /* start other cores */ - printf("\nStart timer basic tests (%d seconds)\n", TEST_DURATION_S); + printf("\nStart timer basic tests\n"); rte_eal_mp_remote_launch(timer_basic_main_loop, NULL, CALL_MASTER); rte_eal_mp_wait_lcore(); -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH v2 2/4] app/test: reduce memory needs 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 1/4] app/test: shorten execution time Thomas Monjalon @ 2016-05-11 14:26 ` Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 3/4] app/test: remove unused constants Thomas Monjalon ` (2 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2016-05-11 14:26 UTC (permalink / raw) To: dev Adjust memory parameter (--socket-mem) of the autotests to be able to make fast_test in a constrained environment (e.g. a VM). Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> --- app/test/autotest_data.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/test/autotest_data.py b/app/test/autotest_data.py index 8a92bb4..25cca4e 100644 --- a/app/test/autotest_data.py +++ b/app/test/autotest_data.py @@ -109,7 +109,7 @@ parallel_test_group_list = [ }, { "Prefix": "group_2", - "Memory" : "128", + "Memory" : "16", "Tests" : [ { @@ -164,7 +164,7 @@ parallel_test_group_list = [ }, { "Prefix": "group_3", - "Memory" : per_sockets(1024), + "Memory" : per_sockets(390), "Tests" : [ { @@ -293,7 +293,7 @@ parallel_test_group_list = [ }, { "Prefix": "group_6", - "Memory" : per_sockets(620), + "Memory" : per_sockets(128), "Tests" : [ { @@ -330,7 +330,7 @@ parallel_test_group_list = [ }, { "Prefix" : "group_7", - "Memory" : "400", + "Memory" : "64", "Tests" : [ { @@ -418,7 +418,7 @@ non_parallel_test_group_list = [ }, { "Prefix" : "power", - "Memory" : per_sockets(512), + "Memory" : "16", "Tests" : [ { @@ -431,7 +431,7 @@ non_parallel_test_group_list = [ }, { "Prefix" : "power_acpi_cpufreq", - "Memory" : per_sockets(512), + "Memory" : "16", "Tests" : [ { @@ -444,7 +444,7 @@ non_parallel_test_group_list = [ }, { "Prefix" : "power_kvm_vm", - "Memory" : "512", + "Memory" : "16", "Tests" : [ { -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH v2 3/4] app/test: remove unused constants 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 1/4] app/test: shorten execution time Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 2/4] app/test: reduce memory needs Thomas Monjalon @ 2016-05-11 14:26 ` Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 4/4] app/test: move cycles autotest to first group Thomas Monjalon 2016-05-24 15:20 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon 4 siblings, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2016-05-11 14:26 UTC (permalink / raw) To: dev Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> --- app/test/test_lpm6.c | 2 -- app/test/test_memcpy.c | 15 --------------- app/test/test_mempool.c | 2 -- app/test/test_ring.c | 2 -- 4 files changed, 21 deletions(-) diff --git a/app/test/test_lpm6.c b/app/test/test_lpm6.c index 9545982..458a10b 100644 --- a/app/test/test_lpm6.c +++ b/app/test/test_lpm6.c @@ -113,8 +113,6 @@ rte_lpm6_test tests6[] = { }; #define NUM_LPM6_TESTS (sizeof(tests6)/sizeof(tests6[0])) -#define RTE_LPM6_TBL24_NUM_ENTRIES (1 << 24) -#define RTE_LPM6_LOOKUP_SUCCESS 0x04000000 #define MAX_DEPTH 128 #define MAX_RULES 1000000 #define NUMBER_TBL8S (1 << 16) diff --git a/app/test/test_memcpy.c b/app/test/test_memcpy.c index b2bb4e0..8195e20 100644 --- a/app/test/test_memcpy.c +++ b/app/test/test_memcpy.c @@ -37,10 +37,7 @@ #include <stdlib.h> #include <rte_common.h> -#include <rte_cycles.h> #include <rte_random.h> -#include <rte_malloc.h> - #include <rte_memcpy.h> #include "test.h" @@ -65,18 +62,6 @@ static size_t buf_sizes[TEST_VALUE_RANGE]; #define SMALL_BUFFER_SIZE TEST_VALUE_RANGE #endif /* TEST_VALUE_RANGE == 0 */ - -/* - * Arrays of this size are used for measuring uncached memory accesses by - * picking a random location within the buffer. Make this smaller if there are - * memory allocation errors. - */ -#define LARGE_BUFFER_SIZE (100 * 1024 * 1024) - -/* How many times to run timing loop for performance tests */ -#define TEST_ITERATIONS 1000000 -#define TEST_BATCH_SIZE 100 - /* Data is aligned on this many bytes (power of 2) */ #define ALIGNMENT_UNIT 32 diff --git a/app/test/test_mempool.c b/app/test/test_mempool.c index 893d5d0..f439834 100644 --- a/app/test/test_mempool.c +++ b/app/test/test_mempool.c @@ -71,8 +71,6 @@ * put them back in the pool. */ -#define N 65536 -#define TIME_S 5 #define MEMPOOL_ELT_SIZE 2048 #define MAX_KEEP 16 #define MEMPOOL_SIZE ((rte_lcore_count()*(MAX_KEEP+RTE_MEMPOOL_CACHE_MAX_SIZE))-1) diff --git a/app/test/test_ring.c b/app/test/test_ring.c index 4f8dc8f..9095e59 100644 --- a/app/test/test_ring.c +++ b/app/test/test_ring.c @@ -100,8 +100,6 @@ #define RING_SIZE 4096 #define MAX_BULK 32 -#define N 65536 -#define TIME_S 5 static rte_atomic32_t synchro; -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH v2 4/4] app/test: move cycles autotest to first group 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon ` (2 preceding siblings ...) 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 3/4] app/test: remove unused constants Thomas Monjalon @ 2016-05-11 14:26 ` Thomas Monjalon 2016-05-24 15:20 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon 4 siblings, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2016-05-11 14:26 UTC (permalink / raw) To: dev The cycles test was wrongly in the group of mempool perf test. It is moved in parallel test group 1 with timer test. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> --- app/test/autotest_data.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/test/autotest_data.py b/app/test/autotest_data.py index 25cca4e..78d2edd 100644 --- a/app/test/autotest_data.py +++ b/app/test/autotest_data.py @@ -58,6 +58,12 @@ parallel_test_group_list = [ "Tests" : [ { + "Name" : "Cycles autotest", + "Command" : "cycles_autotest", + "Func" : default_autotest, + "Report" : None, + }, + { "Name" : "Timer autotest", "Command" : "timer_autotest", "Func" : timer_autotest, @@ -377,12 +383,6 @@ non_parallel_test_group_list = [ "Tests" : [ { - "Name" : "Cycles autotest", - "Command" : "cycles_autotest", - "Func" : default_autotest, - "Report" : None, - }, - { "Name" : "Mempool performance autotest", "Command" : "mempool_perf_autotest", "Func" : default_autotest, -- 2.7.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon ` (3 preceding siblings ...) 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 4/4] app/test: move cycles autotest to first group Thomas Monjalon @ 2016-05-24 15:20 ` Thomas Monjalon 4 siblings, 0 replies; 7+ messages in thread From: Thomas Monjalon @ 2016-05-24 15:20 UTC (permalink / raw) To: dev 2016-05-11 16:26, Thomas Monjalon: > In order to make autotests easy to run often, > the time and memory constraints are reduced. Applied There is some remaining work: > Red autotest: Success [01m 36s] [02m 13s] > The RED autotest needs some work. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-05-24 15:20 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-05-04 17:32 [dpdk-dev] [PATCH] app/test: shorten execution time Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 1/4] app/test: shorten execution time Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 2/4] app/test: reduce memory needs Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 3/4] app/test: remove unused constants Thomas Monjalon 2016-05-11 14:26 ` [dpdk-dev] [PATCH v2 4/4] app/test: move cycles autotest to first group Thomas Monjalon 2016-05-24 15:20 ` [dpdk-dev] [PATCH v2 0/4] reduce autotests constraints 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).