Commit 200217a4 authored by GangCao's avatar GangCao Committed by Daniel Verkamp
Browse files

nvmf: poll the NVMe subsystem once under more sessions case



Change-Id: Ie13a787eb0ff3b6b95fb6796871ac0b747b992ad
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
parent b3d229e0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ struct spdk_nvmf_ctrlr_ops {
	/**
	 * Poll for completions.
	 */
	void (*poll_for_completions)(struct spdk_nvmf_session *session);
	void (*poll_for_completions)(struct spdk_nvmf_subsystem *subsystem);

	/**
	 * Detach the controller.
+3 −3
Original line number Diff line number Diff line
@@ -51,10 +51,10 @@ nvmf_direct_ctrlr_get_data(struct spdk_nvmf_session *session)
}

static void
nvmf_direct_ctrlr_poll_for_completions(struct spdk_nvmf_session *session)
nvmf_direct_ctrlr_poll_for_completions(struct spdk_nvmf_subsystem *subsystem)
{
	spdk_nvme_ctrlr_process_admin_completions(session->subsys->dev.direct.ctrlr);
	spdk_nvme_qpair_process_completions(session->subsys->dev.direct.io_qpair, 0);
	spdk_nvme_ctrlr_process_admin_completions(subsystem->dev.direct.ctrlr);
	spdk_nvme_qpair_process_completions(subsystem->dev.direct.io_qpair, 0);
}

static void
+5 −5
Original line number Diff line number Diff line
@@ -132,12 +132,12 @@ spdk_nvmf_subsystem_poll(struct spdk_nvmf_subsystem *subsystem)
{
	struct spdk_nvmf_session *session;

	TAILQ_FOREACH(session, &subsystem->sessions, link) {
	/* For NVMe subsystems, check the backing physical device for completions. */
	if (subsystem->subtype == SPDK_NVMF_SUBTYPE_NVME) {
			session->subsys->ops->poll_for_completions(session);
		subsystem->ops->poll_for_completions(subsystem);
	}

	TAILQ_FOREACH(session, &subsystem->sessions, link) {
		/* For each connection in the session, check for completions */
		spdk_nvmf_session_poll(session);
	}
+1 −1
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ nvmf_virtual_ctrlr_get_data(struct spdk_nvmf_session *session)
}

static void
nvmf_virtual_ctrlr_poll_for_completions(struct spdk_nvmf_session *session)
nvmf_virtual_ctrlr_poll_for_completions(struct spdk_nvmf_subsystem *subsystem)
{
	return;
}