bdevio: don't hardcode lcore ids

In order to allow specifying a custom cpumask
we have to prepare the environment a bit.

Change-Id: I45d2c960c05c7583cc2781c985760813ef1f2b77
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/421733
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Dariusz Stojaczyk 2018-08-09 12:48:03 +02:00 committed by Jim Harris
parent c2dc15a0ec
commit ff0f97cf4d

View File

@ -45,15 +45,15 @@
#define BUFFER_SIZE 260 * 1024
#define BDEV_TASK_ARRAY_SIZE 2048
#define LCORE_ID_INIT 0
#define LCORE_ID_UT 1
#define LCORE_ID_IO 2
#include "../common.c"
pthread_mutex_t g_test_mutex;
pthread_cond_t g_test_cond;
static uint32_t g_lcore_id_init;
static uint32_t g_lcore_id_ut;
static uint32_t g_lcore_id_io;
struct io_target {
struct spdk_bdev *bdev;
struct spdk_bdev_desc *bdev_desc;
@ -77,7 +77,7 @@ execute_spdk_function(spdk_event_fn fn, void *arg1, void *arg2)
{
struct spdk_event *event;
event = spdk_event_allocate(LCORE_ID_IO, fn, arg1, arg2);
event = spdk_event_allocate(g_lcore_id_io, fn, arg1, arg2);
pthread_mutex_lock(&g_test_mutex);
spdk_event_call(event);
pthread_cond_wait(&g_test_cond, &g_test_mutex);
@ -845,7 +845,7 @@ stop_init_thread(unsigned num_failures)
{
struct spdk_event *event;
event = spdk_event_allocate(LCORE_ID_INIT, __stop_init_thread,
event = spdk_event_allocate(g_lcore_id_init, __stop_init_thread,
(void *)(uintptr_t)num_failures, NULL);
spdk_event_call(event);
}
@ -920,12 +920,23 @@ test_main(void *arg1, void *arg2)
pthread_mutex_init(&g_test_mutex, NULL);
pthread_cond_init(&g_test_cond, NULL);
g_lcore_id_init = spdk_env_get_first_core();
g_lcore_id_ut = spdk_env_get_next_core(g_lcore_id_init);
g_lcore_id_io = spdk_env_get_next_core(g_lcore_id_ut);
if (g_lcore_id_init == SPDK_ENV_LCORE_ID_ANY ||
g_lcore_id_ut == SPDK_ENV_LCORE_ID_ANY ||
g_lcore_id_io == SPDK_ENV_LCORE_ID_ANY) {
SPDK_ERRLOG("Could not reserve 3 separate threads.\n");
spdk_app_stop(-1);
}
if (bdevio_construct_targets() < 0) {
spdk_app_stop(-1);
return;
}
event = spdk_event_allocate(LCORE_ID_UT, __run_ut_thread, NULL, NULL);
event = spdk_event_allocate(g_lcore_id_ut, __run_ut_thread, NULL, NULL);
spdk_event_call(event);
}