Commit 64fc2912 authored by John Kariuki's avatar John Kariuki Committed by Daniel Verkamp
Browse files

nvmf_tgt: add socket ID to NUMA warning message



Added the socket ID to the NVMe over fabrics target warning messages.
This will help during troubleshooting to check that the NVMe device, Subsystem and NIC are on the same NUMA node

Change-Id: Id750a5a7694c898bb61ea26089ea3098611d530a
Signed-off-by: default avatarJohn Kariuki <John.K.Kariuki@intel.com>
parent 49369134
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -379,10 +379,14 @@ attach_cb(void *cb_ctx, const struct spdk_nvme_probe_info *probe_info,
	if (numa_node >= 0) {
		/* Running subsystem and NVMe device is on the same socket or not */
		if (rte_lcore_to_socket_id(ctx->app_subsystem->lcore) != (unsigned)numa_node) {
			SPDK_WARNLOG("Subsystem %s is configured to run on a CPU core belonging "
			SPDK_WARNLOG("Subsystem %s is configured to run on a CPU core %u belonging "
				     "to a different NUMA node than the associated NVMe device. "
				     "This may result in reduced performance.\n",
				     spdk_nvmf_subsystem_get_nqn(ctx->app_subsystem->subsystem));
				     spdk_nvmf_subsystem_get_nqn(ctx->app_subsystem->subsystem),
				     ctx->app_subsystem->lcore);
			SPDK_WARNLOG("The NVMe device is on socket %u\n", numa_node);
			SPDK_WARNLOG("The Subsystem is on socket %u\n",
				     rte_lcore_to_socket_id(ctx->app_subsystem->lcore));
		}
	}

@@ -501,10 +505,13 @@ spdk_nvmf_parse_subsystem(struct spdk_conf_section *sp)
		numa_node = spdk_get_ifaddr_numa_node(traddr);
		if (numa_node >= 0) {
			if (rte_lcore_to_socket_id(app_subsys->lcore) != (unsigned)numa_node) {
				SPDK_WARNLOG("Subsystem %s is configured to run on a CPU core belonging "
				SPDK_WARNLOG("Subsystem %s is configured to run on a CPU core %u belonging "
					     "to a different NUMA node than the associated NIC. "
					     "This may result in reduced performance.\n",
					     spdk_nvmf_subsystem_get_nqn(app_subsys->subsystem));
					     spdk_nvmf_subsystem_get_nqn(app_subsys->subsystem), app_subsys->lcore);
				SPDK_WARNLOG("The NIC is on socket %u\n", numa_node);
				SPDK_WARNLOG("The Subsystem is on socket %u\n",
					     rte_lcore_to_socket_id(app_subsys->lcore));
			}
		}
		spdk_nvmf_subsystem_add_listener(subsystem, transport_name, traddr, trsvcid);
+4 −2
Original line number Diff line number Diff line
@@ -244,7 +244,8 @@ nvmf_tgt_create_subsystem(const char *name, enum spdk_nvmf_subtype subtype,
	app_subsys->subsystem = subsystem;
	app_subsys->lcore = lcore;

	SPDK_NOTICELOG("allocated subsystem %s on lcore %u\n", name, lcore);
	SPDK_NOTICELOG("allocated subsystem %s on lcore %u on socket %u\n", name, lcore,
		       rte_lcore_to_socket_id(lcore));

	TAILQ_INSERT_TAIL(&g_subsystems, app_subsys, tailq);

@@ -341,7 +342,8 @@ spdk_nvmf_startup(spdk_event_t event)
			     g_spdk_nvmf_tgt_conf.acceptor_lcore, NULL,
			     g_spdk_nvmf_tgt_conf.acceptor_poll_rate);

	SPDK_NOTICELOG("Acceptor running on core %u\n", g_spdk_nvmf_tgt_conf.acceptor_lcore);
	SPDK_NOTICELOG("Acceptor running on core %u on socket %u\n", g_spdk_nvmf_tgt_conf.acceptor_lcore,
		       rte_lcore_to_socket_id(g_spdk_nvmf_tgt_conf.acceptor_lcore));

	if (getenv("MEMZONE_DUMP") != NULL) {
		spdk_memzone_dump(stdout);