#include <rte_memzone.h>
#include <rte_per_lcore.h>
#include <rte_launch.h>
-#include <rte_tailq.h>
#include <rte_eal.h>
#include <rte_per_lcore.h>
#include <rte_lcore.h>
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)
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++;
* Test rte_eal_get_lcore_state() in addition to spinlocks
* as we have "waiting" then "running" lcores.
*/
-int
+static int
test_spinlock(void)
{
int ret = 0;
RTE_LCORE_FOREACH_SLAVE(i) {
rte_spinlock_unlock(&sl_tab[i]);
- rte_delay_ms(100);
+ rte_delay_ms(10);
}
rte_eal_mp_wait_lcore();
return ret;
}
+
+static struct test_command spinlock_cmd = {
+ .command = "spinlock_autotest",
+ .callback = test_spinlock,
+};
+REGISTER_TEST_COMMAND(spinlock_cmd);