Commit b3edbe31 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Jim Harris
Browse files

nvme: add pci vendor|device_id to spdk_nvme_build_name()



While adding that adjust apps to rely more on build name function
instead get ctrlr information on its own.

Change-Id: I6ff1e953d9be8ed7141bdf4fb2fe2341bb8297ac
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25854


Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarAnkit Kumar <ankit.kumar@samsung.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarKonrad Sztyber <ksztyber@nvidia.com>
parent 15338253
Loading
Loading
Loading
Loading
+2 −23
Original line number Diff line number Diff line
@@ -1727,9 +1727,6 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport
	uint8_t					str[512];
	uint32_t				i, j;
	struct spdk_nvme_error_information_entry *error_entry;
	struct spdk_pci_addr			pci_addr;
	struct spdk_pci_device			*pci_dev;
	struct spdk_pci_id			pci_id;
	uint32_t				nsid;
	uint8_t					*orig_desc;
	struct spdk_nvme_ana_group_descriptor	*copied_desc;
@@ -1753,26 +1750,8 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport
	cdata = spdk_nvme_ctrlr_get_data(ctrlr);

	printf("=====================================================\n");
	if (trid->trtype != SPDK_NVME_TRANSPORT_PCIE) {
		printf("NVMe over Fabrics controller at %s:%s: %s\n",
		       trid->traddr, trid->trsvcid, trid->subnqn);
	} else {
		if (spdk_pci_addr_parse(&pci_addr, trid->traddr) != 0) {
			return;
		}

		pci_dev = spdk_nvme_ctrlr_get_pci_device(ctrlr);
		if (!pci_dev) {
			return;
		}

		pci_id = spdk_pci_device_get_id(pci_dev);

		printf("NVMe Controller at %04x:%02x:%02x.%x [%04x:%04x]\n",
		       pci_addr.domain, pci_addr.bus,
		       pci_addr.dev, pci_addr.func,
		       pci_id.vendor_id, pci_id.device_id);
	}
	spdk_nvme_build_name(str, sizeof(str), ctrlr, NULL);
	printf("NVMe%s Controller at %s\n", trid->trtype != SPDK_NVME_TRANSPORT_PCIE ? "oF" : "", str);
	printf("=====================================================\n");

	if (g_hex_dump) {
+4 −21
Original line number Diff line number Diff line
@@ -1400,6 +1400,8 @@ register_ctrlr(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_trid_entry *trid_
	}

	spdk_nvme_build_name(entry->name, sizeof(entry->name), ctrlr, NULL);
	printf("Attached to NVMe%s Controller at %s\n",
	       trid_entry->trid.trtype != SPDK_NVME_TRANSPORT_PCIE ? "oF" : "", entry->name);

	entry->ctrlr = ctrlr;
	entry->trtype = trid_entry->trid.trtype;
@@ -2906,33 +2908,14 @@ attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid,
{
	struct spdk_nvme_trid_entry	*trid_entry = cb_ctx;
	struct spdk_pci_addr	pci_addr;
	struct spdk_pci_device	*pci_dev;
	struct spdk_pci_id	pci_id;

	if (trid->trtype != SPDK_NVME_TRANSPORT_PCIE) {
		printf("Attached to NVMe over Fabrics controller at %s:%s: %s\n",
		       trid->traddr, trid->trsvcid,
		       trid->subnqn);
	} else {
	if (trid->trtype == SPDK_NVME_TRANSPORT_PCIE) {
		if (spdk_pci_addr_parse(&pci_addr, trid->traddr)) {
			return;
		}

		pci_dev = spdk_nvme_ctrlr_get_pci_device(ctrlr);
		if (!pci_dev) {
			return;
		}

		pci_id = spdk_pci_device_get_id(pci_dev);

		printf("Attached to NVMe Controller at %s [%04x:%04x]\n",
		       trid->traddr,
		       pci_id.vendor_id, pci_id.device_id);

		if (g_enable_interrupt && !opts->enable_interrupts) {
			fprintf(stderr, "Couldn't enable interrupts on NVMe controller at %s [%04x:%04x]\n",
				trid->traddr,
				pci_id.vendor_id, pci_id.device_id);
			fprintf(stderr, "Couldn't enable interrupts on NVMe controller at %s\n", trid->traddr);
			return;
		}
	}
+3 −18
Original line number Diff line number Diff line
@@ -217,6 +217,8 @@ register_ctrlr(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_trid_entry *trid_
	}

	spdk_nvme_build_name(entry->name, sizeof(entry->name), ctrlr, NULL);
	printf("Attached to NVMe%s Controller at %s\n",
	       trid_entry->trid.trtype != SPDK_NVME_TRANSPORT_PCIE ? "oF" : "", entry->name);

	entry->ctrlr = ctrlr;
	entry->trtype = trid_entry->trid.trtype;
@@ -798,28 +800,11 @@ attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid,
{
	struct spdk_nvme_trid_entry       *trid_entry = cb_ctx;
	struct spdk_pci_addr    pci_addr;
	struct spdk_pci_device  *pci_dev;
	struct spdk_pci_id      pci_id;

	if (trid->trtype != SPDK_NVME_TRANSPORT_PCIE) {
		printf("Attached to NVMe over Fabrics controller at %s:%s: %s\n",
		       trid->traddr, trid->trsvcid,
		       trid->subnqn);
	} else {
	if (trid->trtype == SPDK_NVME_TRANSPORT_PCIE) {
		if (spdk_pci_addr_parse(&pci_addr, trid->traddr)) {
			return;
		}

		pci_dev = spdk_nvme_ctrlr_get_pci_device(ctrlr);
		if (!pci_dev) {
			return;
		}

		pci_id = spdk_pci_device_get_id(pci_dev);

		printf("Attached to NVMe Controller at %s [%04x:%04x]\n",
		       trid->traddr,
		       pci_id.vendor_id, pci_id.device_id);
	}

	register_ctrlr(ctrlr, trid_entry);
+2 −8
Original line number Diff line number Diff line
@@ -340,8 +340,8 @@ register_ctrlr(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_trid_entry *trid_
	 */
	snprintf(entry->failover_trid.subnqn, SPDK_NVMF_NQN_MAX_LEN + 1, "%s", ctrlr_trid->subnqn);


	spdk_nvme_build_name(entry->name, sizeof(entry->name), ctrlr, NULL);
	printf("Attached to NVMeoF Controller at %s\n", entry->name);

	entry->ctrlr = ctrlr;
	entry->trtype = trid_entry->trid.trtype;
@@ -831,13 +831,7 @@ static void
attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid,
	  struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_ctrlr_opts *opts)
{
	struct spdk_nvme_trid_entry	*trid_entry = cb_ctx;

	printf("Attached to NVMe over Fabrics controller at %s:%s: %s\n",
	       trid->traddr, trid->trsvcid,
	       trid->subnqn);

	register_ctrlr(ctrlr, trid_entry);
	register_ctrlr(ctrlr, cb_ctx);
}

static int
+15 −0
Original line number Diff line number Diff line
@@ -141,7 +141,22 @@ spdk_nvme_build_name(char *name, size_t length, struct spdk_nvme_ctrlr *ctrlr,

	switch (trid->trtype) {
	case SPDK_NVME_TRANSPORT_PCIE:
		struct spdk_pci_device *dev;

		res = snprintf(name, length, "PCIE (%s)", trid->traddr);

		dev = spdk_nvme_ctrlr_get_pci_device(ctrlr);
		if (dev && res > 0) {
			struct spdk_pci_id pci_id;
			int _res;

			pci_id = spdk_pci_device_get_id(dev);
			_res = snprintf(name + res, length - res, " [%04x:%04x]", pci_id.vendor_id, pci_id.device_id);
			if (_res > 0) {
				res = res + _res;
			}
		}

		break;
	case SPDK_NVME_TRANSPORT_RDMA:
		res = snprintf(name, length, "RDMA (addr:%s subnqn:%s)", trid->traddr, trid->subnqn);