From: Jan Blunck <jblunck@infradead.org>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 01/38] eal: add name field to generic device
Date: Mon, 6 Mar 2017 10:59:53 +0100 [thread overview]
Message-ID: <1488794430-25179-2-git-send-email-jblunck@infradead.org> (raw)
In-Reply-To: <1488794430-25179-1-git-send-email-jblunck@infradead.org>
This adds a name field to the generic struct rte_device. The EAL is
checking for the name being populated when registering a device but
doesn't enforce global unique names as this is left to the bus
implementations.
Signed-off-by: Jan Blunck <jblunck@infradead.org>
---
lib/librte_eal/bsdapp/eal/eal_pci.c | 3 +++
lib/librte_eal/common/eal_common_dev.c | 3 +++
lib/librte_eal/common/eal_common_vdev.c | 2 ++
lib/librte_eal/common/include/rte_dev.h | 1 +
lib/librte_eal/common/include/rte_pci.h | 1 +
lib/librte_eal/linuxapp/eal/eal_pci.c | 3 +++
6 files changed, 13 insertions(+)
diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c
index 3a5c315..58cdb54 100644
--- a/lib/librte_eal/bsdapp/eal/eal_pci.c
+++ b/lib/librte_eal/bsdapp/eal/eal_pci.c
@@ -280,6 +280,9 @@ pci_scan_one(int dev_pci_fd, struct pci_conf *conf)
/* FreeBSD has no NUMA support (yet) */
dev->device.numa_node = 0;
+ rte_eal_pci_device_name(&dev->addr, dev->name, sizeof(dev->name));
+ dev->device.name = dev->name;
+
/* FreeBSD has only one pass through driver */
dev->kdrv = RTE_KDRV_NIC_UIO;
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index 4bde430..12a2286 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -68,6 +68,9 @@ rte_eal_driver_unregister(struct rte_driver *driver)
void rte_eal_device_insert(struct rte_device *dev)
{
+ RTE_VERIFY(dev->name);
+ RTE_VERIFY(dev->name[0] != '\0');
+
TAILQ_INSERT_TAIL(&dev_device_list, dev, next);
}
diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c
index 22fe2ca..c922297 100644
--- a/lib/librte_eal/common/eal_common_vdev.c
+++ b/lib/librte_eal/common/eal_common_vdev.c
@@ -180,6 +180,7 @@ rte_eal_vdev_init(const char *name, const char *args)
dev->device.devargs = devargs;
dev->device.numa_node = SOCKET_ID_ANY;
+ dev->device.name = devargs->virt.drv_name;
ret = vdev_probe_all_drivers(dev);
if (ret) {
@@ -271,6 +272,7 @@ vdev_scan(void)
dev->device.devargs = devargs;
dev->device.numa_node = SOCKET_ID_ANY;
+ dev->device.name = devargs->virt.drv_name;
rte_eal_device_insert(&dev->device);
TAILQ_INSERT_TAIL(&vdev_device_list, dev, next);
diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
index 4251099..67c2b0c 100644
--- a/lib/librte_eal/common/include/rte_dev.h
+++ b/lib/librte_eal/common/include/rte_dev.h
@@ -122,6 +122,7 @@ struct rte_driver;
*/
struct rte_device {
TAILQ_ENTRY(rte_device) next; /**< Next device */
+ const char *name; /**< Device name */
const struct rte_driver *driver;/**< Associated driver */
int numa_node; /**< NUMA node connection */
struct rte_devargs *devargs; /**< Device user arguments */
diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h
index 8557e47..a036fe9 100644
--- a/lib/librte_eal/common/include/rte_pci.h
+++ b/lib/librte_eal/common/include/rte_pci.h
@@ -158,6 +158,7 @@ struct rte_pci_device {
struct rte_pci_driver *driver; /**< Associated driver */
uint16_t max_vfs; /**< sriov enable if not zero */
enum rte_kernel_driver kdrv; /**< Kernel driver passthrough */
+ char name[PCI_PRI_STR_SIZE+1]; /**< PCI location (ASCII) */
};
/**
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c
index e2fc219..8b131f8 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
@@ -316,6 +316,9 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr)
dev->device.numa_node = tmp;
}
+ rte_eal_pci_device_name(addr, dev->name, sizeof(dev->name));
+ dev->device.name = dev->name;
+
/* parse resources */
snprintf(filename, sizeof(filename), "%s/resource", dirname);
if (pci_parse_sysfs_resource(filename, dev) < 0) {
--
2.7.4
next prev parent reply other threads:[~2017-03-06 10:00 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-06 9:59 [dpdk-dev] [PATCH 00/38] Remove struct eth_driver Jan Blunck
2017-03-06 9:59 ` Jan Blunck [this message]
2017-03-06 9:59 ` [dpdk-dev] [PATCH 02/38] eal: parse "driver" device argument before probing drivers Jan Blunck
2017-03-06 9:59 ` [dpdk-dev] [PATCH 03/38] net/nfp: use library function for DMA zone reserve Jan Blunck
2017-03-10 7:03 ` Shreyansh Jain
2017-03-10 7:20 ` Jan Blunck
2017-03-06 9:59 ` [dpdk-dev] [PATCH 04/38] net/vmxnet3: " Jan Blunck
2017-03-06 9:59 ` [dpdk-dev] [PATCH 05/38] ether: add allocation helper for virtual drivers Jan Blunck
2017-03-06 9:59 ` [dpdk-dev] [PATCH 06/38] net/tap: use ethdev allocation helper for virtual devices Jan Blunck
2017-03-06 9:59 ` [dpdk-dev] [PATCH 07/38] net/vhost: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 08/38] net/virtio: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 09/38] net/af_packet: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 10/38] app/test: don't short-circuit null device creation Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 11/38] net/null: internalize eth_dev_null_create() Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 12/38] net/null: use ethdev allocation helper for virtual devices Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 13/38] net/bonding: make bonding API call through EAL on create/free Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 14/38] net/bonding: use ethdev allocation helper for virtual devices Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 15/38] ethdev: add PCI driver helpers Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 16/38] net/virtio: Don't use eth_driver Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 17/38] net/bnx2x: " Jan Blunck
2017-03-06 19:32 ` Harish Patil
2017-03-06 10:00 ` [dpdk-dev] [PATCH 18/38] net/bnxt: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 19/38] net/cxgbe: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 20/38] net/em: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 21/38] net/igb: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 22/38] net/ena: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 23/38] net/enic: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 24/38] net/fm10k: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 25/38] net/i40e: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 26/38] net/i40evf: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 27/38] net/ixgbe: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 28/38] net/mlx: Don't reference eth_driver Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 29/38] net/nfp: Don't use eth_driver Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 30/38] net/qede: " Jan Blunck
2017-03-06 19:33 ` Harish Patil
2017-03-06 10:00 ` [dpdk-dev] [PATCH 31/38] net/sfc: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 32/38] net/szedata2: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 33/38] net/thunderx: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 34/38] net/vmxnet3: " Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 35/38] ethdev: remove unused ethdev PCI probe/remove Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 36/38] ethdev: remove unused ethdev driver Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 37/38] ethdev: remove PCI specific helper from generic ethdev header Jan Blunck
2017-03-06 10:00 ` [dpdk-dev] [PATCH 38/38] ethdev: don't include PCI header Jan Blunck
2017-03-23 15:34 ` [dpdk-dev] [PATCH 00/38] Remove struct eth_driver Stephen Hemminger
2017-03-25 10:50 ` Jan Blunck
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 00/42] " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 01/42] eal: add name field to generic device Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 02/42] eal: parse "driver" device argument before probing drivers Gaetan Rivet
2017-05-10 2:34 ` Ferruh Yigit
2017-05-10 11:01 ` Ferruh Yigit
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 03/42] net/nfp: use library function for DMA zone reserve Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 04/42] ether: add allocation helper for virtual drivers Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 05/42] net/tap: use ethdev allocation helper for virtual devices Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 06/42] net/vhost: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 07/42] net/virtio: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 08/42] net/af_packet: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 09/42] app/test: don't short-circuit null device creation Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 10/42] net/null: internalize eth_dev_null_create() Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 11/42] net/null: use ethdev allocation helper for virtual devices Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 12/42] net/bonding: make bonding API call through EAL on create/free Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 13/42] net/bonding: use ethdev allocation helper for virtual devices Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 14/42] net/kni: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 15/42] net/pcap: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 16/42] ethdev: add PCI driver helpers Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 17/42] net/virtio: Don't use eth_driver Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 18/42] net/bnx2x: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 19/42] net/bnxt: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 20/42] net/cxgbe: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 21/42] net/em: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 22/42] net/igb: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 23/42] net/ena: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 24/42] net/enic: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 25/42] net/fm10k: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 26/42] net/i40e: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 27/42] net/i40evf: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 28/42] net/ixgbe: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 29/42] net/mlx: Don't reference eth_driver Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 30/42] net/nfp: Don't use eth_driver Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 31/42] net/qede: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 32/42] net/sfc: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 33/42] net/szedata2: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 34/42] net/thunderx: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 35/42] net/vmxnet3: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 36/42] net/avp: " Gaetan Rivet
2017-04-11 18:48 ` Legacy, Allain
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 37/42] net/liquidio: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 38/42] ethdev: remove unused ethdev PCI probe/remove Gaetan Rivet
2017-04-12 11:24 ` Neil Horman
2017-04-12 11:28 ` Neil Horman
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 39/42] ethdev: remove unused ethdev driver Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 40/42] test: " Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 41/42] ethdev: remove PCI specific helper from generic ethdev header Gaetan Rivet
2017-04-11 15:44 ` [dpdk-dev] [PATCH v2 42/42] ethdev: don't include PCI header Gaetan Rivet
2017-04-12 16:25 ` [dpdk-dev] [PATCH v2 00/42] Remove struct eth_driver Stephen Hemminger
2017-04-14 13:09 ` Thomas Monjalon
2017-04-18 18:27 ` [dpdk-dev] [PATCH 0/2] next-net: remove ethdev driver Ferruh Yigit
2017-04-18 18:27 ` [dpdk-dev] [PATCH 1/2] net/ark: remove eth_dev Ferruh Yigit
2017-04-18 19:24 ` Ed Czeck
2017-04-19 10:03 ` Ferruh Yigit
2017-04-18 18:27 ` [dpdk-dev] [PATCH 2/2] net/xenvirt: remove ethdev driver Ferruh Yigit
2017-04-19 9:52 ` [dpdk-dev] [PATCH v2] net/xenvirt: fix build error Ferruh Yigit
2017-04-19 12:12 ` Thomas Monjalon
2017-04-18 18:38 ` [dpdk-dev] [PATCH 0/2] next-net: remove ethdev driver Ferruh Yigit
2017-04-19 11:37 ` Shreyansh Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1488794430-25179-2-git-send-email-jblunck@infradead.org \
--to=jblunck@infradead.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).