Commit b514849c authored by Tomasz Zawadzki's avatar Tomasz Zawadzki
Browse files

lib/vhost: move vhost_user init thread tracking



Keep track of g_vhost_user_init_thread, local to the
rte_vhost_user.c.

There is no need to track this in generic vhost layer.

Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I1fd22e196a3091284f5f9c3c0c7c70a0e18514cb
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11075


Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent d7cd645c
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -49,6 +49,8 @@
/* Path to folder where character device will be created. Can be set by user. */
static char g_vhost_user_dev_dirname[PATH_MAX] = "";

static struct spdk_thread *g_vhost_user_init_thread;

/**
 * DPDK calls our callbacks synchronously but the work those callbacks
 * perform needs to be async. Luckily, all DPDK callbacks are called on
@@ -618,7 +620,7 @@ foreach_session(void *arg1)
out:
	spdk_vhost_unlock();

	spdk_thread_send_msg(g_vhost_init_thread, foreach_session_finish_cb, arg1);
	spdk_thread_send_msg(g_vhost_user_init_thread, foreach_session_finish_cb, arg1);
}

void
@@ -1120,6 +1122,9 @@ vhost_user_init(void)

	g_vhost_user_started = true;

	g_vhost_user_init_thread = spdk_get_thread();
	assert(g_vhost_user_init_thread != NULL);

	return 0;
}

@@ -1144,7 +1149,7 @@ vhost_user_session_shutdown(void *arg)
	}

	SPDK_INFOLOG(vhost, "Exiting\n");
	spdk_thread_send_msg(g_vhost_init_thread, vhost_cb, NULL);
	spdk_thread_send_msg(g_vhost_user_init_thread, vhost_cb, NULL);
	return NULL;
}

+0 −8
Original line number Diff line number Diff line
@@ -46,9 +46,6 @@ bool g_packed_ring_recovery = false;

static struct spdk_cpuset g_vhost_core_mask;

/* Thread performing all vhost management operations */
struct spdk_thread *g_vhost_init_thread = NULL;

static TAILQ_HEAD(, spdk_vhost_dev) g_vhost_devices = TAILQ_HEAD_INITIALIZER(
			g_vhost_devices);
static pthread_mutex_t g_vhost_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -908,9 +905,6 @@ spdk_vhost_init(spdk_vhost_init_cb init_cb)
	uint32_t i;
	int ret = 0;

	g_vhost_init_thread = spdk_get_thread();
	assert(g_vhost_init_thread != NULL);

	ret = vhost_user_init();
	if (ret != 0) {
		init_cb(ret);
@@ -947,8 +941,6 @@ vhost_fini(void *arg1)
void
spdk_vhost_fini(spdk_vhost_fini_cb fini_cb)
{
	assert(spdk_get_thread() == g_vhost_init_thread);

	g_fini_cb = fini_cb;

	vhost_user_fini(vhost_fini);
+0 −3
Original line number Diff line number Diff line
@@ -47,9 +47,6 @@

extern bool g_packed_ring_recovery;

/* Thread performing all vhost management operations */
extern struct spdk_thread *g_vhost_init_thread;

#define SPDK_VHOST_MAX_VQUEUES	256
#define SPDK_VHOST_MAX_VQ_SIZE	1024