Commit 8cd7252f authored by Ben Walker's avatar Ben Walker
Browse files

nvmf_tgt: Create pollers for poll groups on same core



Create the poller for a given poll group from the core
we intend to use it from.

Change-Id: I8bfb970f31f86b8b29f7fe89d82178b3f27da50b
Signed-off-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/387680


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 95bbc6bf
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@ nvmf_tgt_create_poll_group_done(void *arg1, void *arg2)
	if (pg->group == NULL) {
		g_tgt.state = NVMF_TGT_ERROR;
	} else {
		g_tgt.state = NVMF_TGT_INIT_START_POLLER;
		g_tgt.state = NVMF_TGT_INIT_CREATE_POLL_GROUP_DONE;
	}

	nvmf_tgt_advance_state(NULL, NULL);
@@ -286,6 +286,11 @@ nvmf_tgt_create_poll_group(void *arg1, void *arg2)
		SPDK_ERRLOG("Failed to create poll group for core %u\n", g_tgt.core);
	}

	spdk_poller_register(&pg->poller,
			     nvmf_tgt_poll_group_poll, pg,
			     spdk_env_get_current_core(), 0);
	g_active_poll_groups++;

	spdk_event_call(event);
}

@@ -347,13 +352,7 @@ nvmf_tgt_advance_state(void *arg1, void *arg2)
			spdk_event_call(event);
			break;
		}
		case NVMF_TGT_INIT_START_POLLER: {
			struct nvmf_tgt_poll_group *pg = &g_poll_groups[g_tgt.core];

			spdk_poller_register(&pg->poller,
					     nvmf_tgt_poll_group_poll, pg,
					     g_tgt.core, 0);
			g_active_poll_groups++;
		case NVMF_TGT_INIT_CREATE_POLL_GROUP_DONE: {
			g_tgt.core = spdk_env_get_next_core(g_tgt.core);
			if (g_tgt.core != UINT32_MAX) {
				g_tgt.state = NVMF_TGT_INIT_CREATE_POLL_GROUP;
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ enum nvmf_tgt_state {
	NVMF_TGT_INIT_NONE = 0,
	NVMF_TGT_INIT_PARSE_CONFIG,
	NVMF_TGT_INIT_CREATE_POLL_GROUP,
	NVMF_TGT_INIT_START_POLLER,
	NVMF_TGT_INIT_CREATE_POLL_GROUP_DONE,
	NVMF_TGT_INIT_START_ACCEPTOR,
	NVMF_TGT_RUNNING,
	NVMF_TGT_FINI_STOP_ACCEPTOR,