DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
       [not found] <PATCH v7>
@ 2015-10-30 15:08 ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 01/28] librte_eal: add RTE_KDRV_NONE for vdevs Bernard Iremonger
                     ` (29 more replies)
  0 siblings, 30 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

There is a dummy pci driver in the vdev PMD's at present.
This patch set removes the pci driver from the vdev PMD's.
Changes have been made to librte_ether to handle vdevs and pdevs in the same way.

The following vdev PMD's have had the pci driver removed:

null
ring
bonding
pcap
af_packet
xenvirt
mpipe

All the pdev PMD's have been modified to copy the pci device info into eth_dev data.

Changes in v7:
rebase to latest code.

Changes in v6:
Initialise data->drv_name with the PMD driver name in the vdevs.
Remove two more branches on pci_dev from the bonding vdev.

Changes in v5:
rebase to latest code.
refactor patches to avoid potential problems with git bisect.

Changes in v4:
rebase to latest code.
add doxygen comments to rte_ethdev.h
update release notes in patch 0002.

Changes in v3:
rebase to latest code.
restructure patches 0002 and 0003 to fix compile issue in patch 0002.

Changes in V2:
rebase to latest code.
fix compile error in rte_ethdev.c when debug disabled.
remove Intel copyright from bnx2x, cxgbe, enic, mlx4, mpipe and null PMD's.

Bernard Iremonger (28):
  librte_eal: add RTE_KDRV_NONE for vdevs
  librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  librte_ether: add function rte_eth_copy_dev_info
  ixgbe: copy pci device info to eth_dev data
  e1000: copy pci device info to eth_dev data
  i40e: copy pci device info to eth_dev data
  fm10k: copy pci device info to eth_dev data
  bnx2x: copy pci device info to eth_dev data
  cxgbe: copy pci device info to eth_dev data
  enic: copy pci device info to eth_dev data
  mlx4: copy pci device info to eth_dev data
  virtio: copy pci device info to eth_dev data
  vmxnet3: copy pci device info to eth_dev data
  null: copy device info to eth_dev data
  ring: copy device info to eth_dev data
  pcap: copy device info to eth_dev data
  af_packet: copy device info to eth_dev data
  xenvirt: copy device info to eth_dev data
  mpipe: copy device info to eth_dev data
  bonding: copy device info to eth_dev data
  librte_ether: remove branches on pci_dev
  null: remove pci device
  ring: remove pci device
  pcap: remove pci device
  af_packet: remove pci device
  xenvirt: remove pci device
  mpipe: remove pci device
  bonding: remove pci device

 doc/guides/rel_notes/release_2_2.rst       |  4 ++
 drivers/net/af_packet/rte_eth_af_packet.c  | 20 ++++------
 drivers/net/bnx2x/bnx2x_ethdev.c           |  3 ++
 drivers/net/bonding/rte_eth_bond_8023ad.c  |  4 +-
 drivers/net/bonding/rte_eth_bond_alb.c     |  2 +-
 drivers/net/bonding/rte_eth_bond_api.c     | 60 +++++++++---------------------
 drivers/net/bonding/rte_eth_bond_pmd.c     | 18 ++++-----
 drivers/net/bonding/rte_eth_bond_private.h |  2 +-
 drivers/net/cxgbe/cxgbe_ethdev.c           |  3 ++
 drivers/net/e1000/em_ethdev.c              |  3 ++
 drivers/net/e1000/igb_ethdev.c             |  5 +++
 drivers/net/enic/enic_ethdev.c             |  1 +
 drivers/net/fm10k/fm10k_ethdev.c           |  2 +
 drivers/net/i40e/i40e_ethdev.c             |  3 ++
 drivers/net/i40e/i40e_ethdev_vf.c          |  2 +
 drivers/net/ixgbe/ixgbe_ethdev.c           |  4 ++
 drivers/net/mlx4/mlx4.c                    |  3 ++
 drivers/net/mpipe/mpipe_tilegx.c           | 10 +++--
 drivers/net/null/rte_eth_null.c            | 29 ++++-----------
 drivers/net/pcap/rte_eth_pcap.c            | 31 +++++----------
 drivers/net/ring/rte_eth_ring.c            | 37 ++++--------------
 drivers/net/virtio/virtio_ethdev.c         |  3 ++
 drivers/net/vmxnet3/vmxnet3_ethdev.c       |  2 +
 drivers/net/xenvirt/rte_eth_xenvirt.c      | 18 ++++-----
 lib/librte_eal/common/include/rte_pci.h    |  3 +-
 lib/librte_ether/rte_ethdev.c              | 54 +++++++++++++++------------
 lib/librte_ether/rte_ethdev.h              | 29 +++++++++++++++
 lib/librte_ether/rte_ether_version.map     |  7 ++++
 28 files changed, 185 insertions(+), 177 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 01/28] librte_eal: add RTE_KDRV_NONE for vdevs
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data Bernard Iremonger
                     ` (28 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_eal/common/include/rte_pci.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h
index 83e3c28..334c12e 100644
--- a/lib/librte_eal/common/include/rte_pci.h
+++ b/lib/librte_eal/common/include/rte_pci.h
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
@@ -149,6 +149,7 @@ enum rte_kernel_driver {
 	RTE_KDRV_VFIO,
 	RTE_KDRV_UIO_GENERIC,
 	RTE_KDRV_NIC_UIO,
+	RTE_KDRV_NONE,
 };
 
 /**
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 01/28] librte_eal: add RTE_KDRV_NONE for vdevs Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-11-01 21:12     ` Thomas Monjalon
  2015-11-01 21:41     ` Thomas Monjalon
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info Bernard Iremonger
                     ` (27 subsequent siblings)
  29 siblings, 2 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

add dev_flags to rte_eth_dev_data, add macros for dev_flags.
add kdrv to rte_eth_dev_data.
add numa_node to rte_eth_dev_data.
add drv_name to rte_eth_dev_data.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_ether/rte_ethdev.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 8a8c82b..1517fe2 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -1471,8 +1471,23 @@ struct rte_eth_dev_data {
 		all_multicast : 1, /**< RX all multicast mode ON(1) / OFF(0). */
 		dev_started : 1,   /**< Device state: STARTED(1) / STOPPED(0). */
 		lro         : 1;   /**< RX LRO is ON(1) / OFF(0) */
+	uint32_t dev_flags; /**< Flags controlling handling of device. */
+	enum rte_kernel_driver kdrv;    /**< Kernel driver passthrough */
+	int numa_node;  /**< NUMA node connection */
+	const char *drv_name;   /**< Driver name */
 };
 
+/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */
+#define RTE_ETH_DEV_DRV_NEED_MAPPING   RTE_PCI_DRV_NEED_MAPPING
+/** Device needs to be unbound even if no module is provided */
+#define RTE_ETH_DEV_DRV_FORCE_UNBIND   RTE_PCI_DRV_FORCE_UNBIND
+/** Device supports link state interrupt */
+#define RTE_ETH_DEV_INTR_LSC   RTE_PCI_DRV_INTR_LSC
+/** Device  supports detaching capability */
+#define RTE_ETH_DEV_DETACHABLE RTE_PCI_DRV_DETACHABLE
+/** Device  is a bonded device */
+#define RTE_ETH_DEV_BONDED 0x0020
+
 /**
  * @internal
  * The pool of *rte_eth_dev* structures. The size of the pool
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 01/28] librte_eal: add RTE_KDRV_NONE for vdevs Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-11-01 21:30     ` Thomas Monjalon
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 04/28] ixgbe: copy pci device info to eth_dev data Bernard Iremonger
                     ` (26 subsequent siblings)
  29 siblings, 1 reply; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_ether/rte_ethdev.c          | 14 ++++++++++++++
 lib/librte_ether/rte_ethdev.h          | 14 ++++++++++++++
 lib/librte_ether/rte_ether_version.map |  7 +++++++
 3 files changed, 35 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index f593f6e..ce1d000 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -3342,3 +3342,17 @@ rte_eth_dev_set_eeprom(uint8_t port_id, struct rte_dev_eeprom_info *info)
 	FUNC_PTR_OR_ERR_RET(*dev->dev_ops->set_eeprom, -ENOTSUP);
 	return (*dev->dev_ops->set_eeprom)(dev, info);
 }
+
+void
+rte_eth_copy_dev_info(struct rte_eth_dev *eth_dev, struct rte_pci_device *pci_dev)
+{
+	if ((eth_dev == NULL) || (pci_dev == NULL)) {
+		PMD_DEBUG_TRACE("NULL pointer eth_dev=%p pci_dev=%p\n",
+				eth_dev, pci_dev);
+	}
+
+	eth_dev->data->dev_flags = pci_dev->driver->drv_flags;
+	eth_dev->data->kdrv = pci_dev->kdrv;
+	eth_dev->data->numa_node = pci_dev->numa_node;
+	eth_dev->data->drv_name = pci_dev->driver->name;
+}
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 1517fe2..37bba9f 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -3613,6 +3613,20 @@ extern int rte_eth_timesync_read_rx_timestamp(uint8_t port_id,
 extern int rte_eth_timesync_read_tx_timestamp(uint8_t port_id,
 					      struct timespec *timestamp);
 
+/**
+ * Copy pci device info to the Ethernet device data.
+ *
+ * @param eth_dev
+ * The *eth_dev* pointer is the address of the *rte_eth_dev* structure.
+ * @param pci_dev
+ * The *pci_dev* pointer is the address of the *rte_pci_device* structure.
+ *
+ * @return
+ *   - 0 on success, negative on error
+ */
+extern void rte_eth_copy_dev_info(struct rte_eth_dev *eth_dev, struct rte_pci_device *pci_dev);
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map
index 8345a6c..e6a43be 100644
--- a/lib/librte_ether/rte_ether_version.map
+++ b/lib/librte_ether/rte_ether_version.map
@@ -127,3 +127,10 @@ DPDK_2.1 {
 	rte_eth_timesync_read_tx_timestamp;
 
 } DPDK_2.0;
+
+DPDK_2.2 {
+	global:
+
+	rte_eth_copy_dev_info;
+
+} DPDK_2.1;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 04/28] ixgbe: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (2 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 05/28] e1000: " Bernard Iremonger
                     ` (25 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 4373661..01cbcbf 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -891,6 +891,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 	}
 	pci_dev = eth_dev->pci_dev;
 
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	/* Vendor and Device ID need to be set before init of shared code */
 	hw->device_id = pci_dev->id.device_id;
 	hw->vendor_id = pci_dev->id.vendor_id;
@@ -1159,6 +1161,8 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 
 	pci_dev = eth_dev->pci_dev;
 
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	hw->device_id = pci_dev->id.device_id;
 	hw->vendor_id = pci_dev->id.vendor_id;
 	hw->hw_addr = (void *)pci_dev->mem_resource[0].addr;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 05/28] e1000: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (3 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 04/28] ixgbe: copy pci device info to eth_dev data Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 06/28] i40e: " Bernard Iremonger
                     ` (24 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/em_ethdev.c  | 3 +++
 drivers/net/e1000/igb_ethdev.c | 5 +++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 2354544..58ad62f 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -241,6 +241,9 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
 		E1000_DEV_PRIVATE_TO_VFTA(eth_dev->data->dev_private);
 
 	pci_dev = eth_dev->pci_dev;
+
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	eth_dev->dev_ops = &eth_em_ops;
 	eth_dev->rx_pkt_burst = (eth_rx_burst_t)&eth_em_recv_pkts;
 	eth_dev->tx_pkt_burst = (eth_tx_burst_t)&eth_em_xmit_pkts;
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 3ab082e..f3d8415 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -530,6 +530,9 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev)
 	uint32_t ctrl_ext;
 
 	pci_dev = eth_dev->pci_dev;
+
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	eth_dev->dev_ops = &eth_igb_ops;
 	eth_dev->rx_pkt_burst = &eth_igb_recv_pkts;
 	eth_dev->tx_pkt_burst = &eth_igb_xmit_pkts;
@@ -738,6 +741,8 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
 
 	pci_dev = eth_dev->pci_dev;
 
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	hw->device_id = pci_dev->id.device_id;
 	hw->vendor_id = pci_dev->id.vendor_id;
 	hw->hw_addr = (void *)pci_dev->mem_resource[0].addr;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 06/28] i40e: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (4 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 05/28] e1000: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 07/28] fm10k: " Bernard Iremonger
                     ` (23 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c    | 3 +++
 drivers/net/i40e/i40e_ethdev_vf.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 478e94d..de8f4f3 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -408,6 +408,9 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
 		return 0;
 	}
 	pci_dev = dev->pci_dev;
+
+	rte_eth_copy_dev_info(dev, pci_dev);
+
 	pf->adapter = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
 	pf->adapter->eth_dev = dev;
 	pf->dev_data = dev->data;
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index b694400..ab718fb 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1187,6 +1187,8 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
 		return 0;
 	}
 
+	rte_eth_copy_dev_info(eth_dev, eth_dev->pci_dev);
+
 	hw->vendor_id = eth_dev->pci_dev->id.vendor_id;
 	hw->device_id = eth_dev->pci_dev->id.device_id;
 	hw->subsystem_vendor_id = eth_dev->pci_dev->id.subsystem_vendor_id;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 07/28] fm10k: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (5 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 06/28] i40e: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 08/28] bnx2x: " Bernard Iremonger
                     ` (22 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/fm10k/fm10k_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index b104fc2..f340e5f 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -2076,6 +2076,8 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
+	rte_eth_copy_dev_info(dev, dev->pci_dev);
+
 	macvlan = FM10K_DEV_PRIVATE_TO_MACVLAN(dev->data->dev_private);
 	memset(macvlan, 0, sizeof(*macvlan));
 	/* Vendor and Device ID need to be set before init of shared code */
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 08/28] bnx2x: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (6 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 07/28] fm10k: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 09/28] cxgbe: " Bernard Iremonger
                     ` (21 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/bnx2x/bnx2x_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 09b5920..fbcd5f4 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -419,6 +419,9 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf)
 
 	eth_dev->dev_ops = is_vf ? &bnx2xvf_eth_dev_ops : &bnx2x_eth_dev_ops;
 	pci_dev = eth_dev->pci_dev;
+
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	sc = eth_dev->data->dev_private;
 	sc->pcie_bus    = pci_dev->addr.bus;
 	sc->pcie_device = pci_dev->addr.devid;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 09/28] cxgbe: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (7 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 08/28] bnx2x: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 10/28] enic: " Bernard Iremonger
                     ` (20 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/cxgbe/cxgbe_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index a8e057b..3c406df 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -792,6 +792,9 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
 		return 0;
 
 	pci_dev = eth_dev->pci_dev;
+
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	snprintf(name, sizeof(name), "cxgbeadapter%d", eth_dev->data->port_id);
 	adapter = rte_zmalloc(name, sizeof(*adapter), 0);
 	if (!adapter)
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 10/28] enic: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (8 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 09/28] cxgbe: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 11/28] mlx4: " Bernard Iremonger
                     ` (19 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/enic/enic_ethdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index e385560..95baa8a 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -597,6 +597,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
 	eth_dev->tx_pkt_burst = &enicpmd_xmit_pkts;
 
 	pdev = eth_dev->pci_dev;
+	rte_eth_copy_dev_info(eth_dev, pdev);
 	enic->pdev = pdev;
 	addr = &pdev->addr;
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 11/28] mlx4: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (9 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 10/28] enic: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 12/28] virtio: " Bernard Iremonger
                     ` (18 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/mlx4/mlx4.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index af31573..d2497cc 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -4972,6 +4972,9 @@ mlx4_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 
 		eth_dev->data->dev_private = priv;
 		eth_dev->pci_dev = pci_dev;
+
+		rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 		eth_dev->driver = &mlx4_driver;
 		eth_dev->data->rx_mbuf_alloc_failed = 0;
 		eth_dev->data->mtu = ETHER_MTU;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 12/28] virtio: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (10 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 11/28] mlx4: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 13/28] vmxnet3: " Bernard Iremonger
                     ` (17 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/virtio/virtio_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 12fcc23..4757ca0 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1184,6 +1184,9 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 	}
 
 	pci_dev = eth_dev->pci_dev;
+
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	if (virtio_resource_init(pci_dev) < 0)
 		return -1;
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 13/28] vmxnet3: copy pci device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (11 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 12/28] virtio: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-31  8:39     ` Yong Wang
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 14/28] null: copy " Bernard Iremonger
                     ` (16 subsequent siblings)
  29 siblings, 1 reply; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index a70be5c..2beee3e 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -235,6 +235,8 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
+	rte_eth_copy_dev_info(eth_dev, pci_dev);
+
 	/* Vendor and Device ID need to be set before init of shared code */
 	hw->device_id = pci_dev->id.device_id;
 	hw->vendor_id = pci_dev->id.vendor_id;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 14/28] null: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (12 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 13/28] vmxnet3: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 15/28] ring: " Bernard Iremonger
                     ` (15 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

initialise dev_flags, driver, drv_name, kdrv and numa_node fields in eth_dev data

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/null/rte_eth_null.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index e244595..d34b60e 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -340,13 +340,6 @@ eth_stats_reset(struct rte_eth_dev *dev)
 	}
 }
 
-static struct eth_driver rte_null_pmd = {
-	.pci_drv = {
-		.name = "rte_null_pmd",
-		.drv_flags = RTE_PCI_DRV_DETACHABLE,
-	},
-};
-
 static void
 eth_queue_release(void *q)
 {
@@ -443,8 +436,11 @@ eth_dev_null_create(const char *name,
 
 	eth_dev->data = data;
 	eth_dev->dev_ops = &ops;
-	eth_dev->pci_dev = pci_dev;
-	eth_dev->driver = &rte_null_pmd;
+	eth_dev->driver = NULL;
+	eth_dev->data->dev_flags = RTE_ETH_DEV_DETACHABLE;
+	eth_dev->data->kdrv = RTE_KDRV_NONE;
+	eth_dev->data->drv_name = drivername;
+	eth_dev->data->numa_node = numa_node;
 
 	/* finally assign rx and tx ops */
 	if (packet_copy) {
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 15/28] ring: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (13 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 14/28] null: copy " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 16/28] pcap: " Bernard Iremonger
                     ` (14 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

initialise dev_flags, driver, drv_name, kdrv and numa_node fields in eth_dev data.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/ring/rte_eth_ring.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 0ba36d5..77ac23a 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -304,11 +304,10 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 	if (eth_dev == NULL)
 		goto error;
 
-
 	/* now put it all together
 	 * - store queue data in internals,
-	 * - store numa_node info in pci_driver
-	 * - point eth_dev_data to internals and pci_driver
+	 * - store numa_node info in eth_dev_data
+	 * - point eth_dev_data to internals
 	 * - and point eth_dev structure to new eth_dev_data structure
 	 */
 	/* NOTE: we'll replace the data element, of originally allocated eth_dev
@@ -338,9 +337,13 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 	data->mac_addrs = &internals->address;
 
 	eth_dev->data = data;
-	eth_dev->driver = &rte_ring_pmd;
+	eth_dev->driver = NULL;
 	eth_dev->dev_ops = &ops;
-	eth_dev->pci_dev = pci_dev;
+	eth_dev->data->dev_flags = RTE_ETH_DEV_DETACHABLE;
+	eth_dev->data->kdrv = RTE_KDRV_NONE;
+	eth_dev->data->drv_name = drivername;
+	eth_dev->data->numa_node = numa_node;
+
 	TAILQ_INIT(&(eth_dev->link_intr_cbs));
 
 	/* finally assign rx and tx ops */
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 16/28] pcap: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (14 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 15/28] ring: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 17/28] af_packet: " Bernard Iremonger
                     ` (13 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

initialise dev_flags, driver, drv_name, kdrv and numa_node fields in eth_dev data

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/pcap/rte_eth_pcap.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index f2e4634..850274c 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
  *   Copyright(c) 2014 6WIND S.A.
  *   All rights reserved.
  *
@@ -845,8 +845,8 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 
 	/* now put it all together
 	 * - store queue data in internals,
-	 * - store numa_node info in pci_driver
-	 * - point eth_dev_data to internals and pci_driver
+	 * - store numa_node info in eth_dev
+	 * - point eth_dev_data to internals
 	 * - and point eth_dev structure to new eth_dev_data structure
 	 */
 	/* NOTE: we'll replace the data element, of originally allocated eth_dev
@@ -874,8 +874,11 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 
 	(*eth_dev)->data = data;
 	(*eth_dev)->dev_ops = &ops;
-	(*eth_dev)->pci_dev = pci_dev;
-	(*eth_dev)->driver = &rte_pcap_pmd;
+	(*eth_dev)->data->dev_flags = RTE_ETH_DEV_DETACHABLE;
+	(*eth_dev)->driver = NULL;
+	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
+	(*eth_dev)->data->drv_name = drivername;
+	(*eth_dev)->data->numa_node = numa_node;
 
 	return 0;
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 17/28] af_packet: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (15 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 16/28] pcap: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:17     ` John W. Linville
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 18/28] xenvirt: " Bernard Iremonger
                     ` (12 subsequent siblings)
  29 siblings, 1 reply; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

initialise dev_flags, driver, kdrv, drv_name and numa_node fields in eth_dev data.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index bfde661..2f14482 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -5,7 +5,7 @@
  *
  *   Originally based upon librte_pmd_pcap code:
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
  *   Copyright(c) 2014 6WIND S.A.
  *   All rights reserved.
  *
@@ -656,8 +656,8 @@ rte_pmd_init_internals(const char *name,
 	/*
 	 * now put it all together
 	 * - store queue data in internals,
-	 * - store numa_node info in pci_driver
-	 * - point eth_dev_data to internals and pci_driver
+	 * - store numa_node in eth_dev
+	 * - point eth_dev_data to internals
 	 * - and point eth_dev structure to new eth_dev_data structure
 	 */
 
@@ -674,7 +674,11 @@ rte_pmd_init_internals(const char *name,
 
 	(*eth_dev)->data = data;
 	(*eth_dev)->dev_ops = &ops;
-	(*eth_dev)->pci_dev = pci_dev;
+	(*eth_dev)->driver = NULL;
+	(*eth_dev)->data->dev_flags = 0;
+	(*eth_dev)->data->drv_name = drivername;
+	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
+	(*eth_dev)->data->numa_node = numa_node;
 
 	return 0;
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 18/28] xenvirt: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (16 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 17/28] af_packet: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 19/28] mpipe: " Bernard Iremonger
                     ` (11 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Initialise dev_flags, driver, kdrv, drv_name and numa_node in eth_dev data.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/xenvirt/rte_eth_xenvirt.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/xenvirt/rte_eth_xenvirt.c b/drivers/net/xenvirt/rte_eth_xenvirt.c
index 73e8bce..1895b16 100644
--- a/drivers/net/xenvirt/rte_eth_xenvirt.c
+++ b/drivers/net/xenvirt/rte_eth_xenvirt.c
@@ -67,7 +67,7 @@
 /* virtio_idx is increased after new device is created.*/
 static int virtio_idx = 0;
 
-static const char *drivername = "xen dummy virtio PMD";
+static const char *drivername = "xen virtio PMD";
 
 static struct rte_eth_link pmd_link = {
 		.link_speed = 10000,
@@ -668,7 +668,11 @@ eth_dev_xenvirt_create(const char *name, const char *params,
 
 	eth_dev->data = data;
 	eth_dev->dev_ops = &ops;
-	eth_dev->pci_dev = pci_dev;
+	eth_dev->data->dev_flags = 0;
+	eth_dev->data->kdrv = RTE_KDRV_NONE;
+	eth_dev->data->drv_name = drivername;
+	eth_dev->driver = NULL;
+	eth_dev->data->numa_node = numa_node;
 
 	eth_dev->rx_pkt_burst = eth_xenvirt_rx;
 	eth_dev->tx_pkt_burst = eth_xenvirt_tx;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 19/28] mpipe: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (17 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 18/28] xenvirt: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 20/28] bonding: " Bernard Iremonger
                     ` (10 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

initialise dev_flags, kdrv, driver, drv_name and numa_node in eth_dev data.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/mpipe/mpipe_tilegx.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/mpipe/mpipe_tilegx.c b/drivers/net/mpipe/mpipe_tilegx.c
index 6e3e304..4dc32f7 100644
--- a/drivers/net/mpipe/mpipe_tilegx.c
+++ b/drivers/net/mpipe/mpipe_tilegx.c
@@ -80,6 +80,7 @@ struct mpipe_context {
 
 static struct mpipe_context mpipe_contexts[GXIO_MPIPE_INSTANCE_MAX];
 static int mpipe_instances;
+static const char *drivername = "MPIPE PMD";
 
 /* Per queue statistics. */
 struct mpipe_queue_stats {
@@ -1595,6 +1596,12 @@ rte_pmd_mpipe_devinit(const char *ifname,
 	eth_dev->pci_dev = &priv->pci_dev;
 	eth_dev->data->mac_addrs = &priv->mac_addr;
 
+	eth_dev->data->dev_flags = 0;
+	eth_dev->data->kdrv = RTE_KDRV_NONE;
+	eth_dev->driver = NULL;
+	eth_dev->data->drv_name = drivername;
+	eth_dev->data->numa_node = instance;
+
 	eth_dev->dev_ops      = &mpipe_dev_ops;
 	eth_dev->rx_pkt_burst = &mpipe_recv_pkts;
 	eth_dev->tx_pkt_burst = &mpipe_xmit_pkts;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 20/28] bonding: copy device info to eth_dev data
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (18 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 19/28] mpipe: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 21/28] librte_ether: remove branches on pci_dev Bernard Iremonger
                     ` (9 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

initialise dev_flags, kdrv, driver, drv_name and numa_node fields in eth_dev data.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
---
 drivers/net/bonding/rte_eth_bond_api.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c
index 0681d1a..a852dd2 100644
--- a/drivers/net/bonding/rte_eth_bond_api.c
+++ b/drivers/net/bonding/rte_eth_bond_api.c
@@ -44,6 +44,8 @@
 
 #define DEFAULT_POLLING_INTERVAL_10_MS (10)
 
+const char pmd_bond_driver_name[] = "rte_bond_pmd";
+
 int
 valid_bonded_ethdev(const struct rte_eth_dev *eth_dev)
 {
@@ -250,7 +252,12 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
 	eth_dev->data->all_multicast = 0;
 
 	eth_dev->dev_ops = &default_dev_ops;
-	eth_dev->pci_dev = pci_dev;
+	eth_dev->data->dev_flags = RTE_ETH_DEV_INTR_LSC |
+		RTE_ETH_DEV_DETACHABLE | RTE_ETH_DEV_BONDED;
+	eth_dev->driver = NULL;
+	eth_dev->data->kdrv = RTE_KDRV_NONE;
+	eth_dev->data->drv_name = pmd_bond_driver_name;
+	eth_dev->data->numa_node =  socket_id;
 
 	rte_spinlock_init(&internals->lock);
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 21/28] librte_ether: remove branches on pci_dev
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (19 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 20/28] bonding: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 22/28] null: remove pci device Bernard Iremonger
                     ` (8 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

use dev_type to distinguish between vdev's and pdev's.
remove pci_dev branches.
update release notes.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/rel_notes/release_2_2.rst |  4 ++++
 lib/librte_ether/rte_ethdev.c        | 40 +++++++++++++++---------------------
 2 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/doc/guides/rel_notes/release_2_2.rst b/doc/guides/rel_notes/release_2_2.rst
index 89e4d58..d367580 100644
--- a/doc/guides/rel_notes/release_2_2.rst
+++ b/doc/guides/rel_notes/release_2_2.rst
@@ -31,6 +31,10 @@ New Features
 
 * **Added vhost-user multiple queue support.**
 
+* **Removed the PCI device from vdev PMD's.**
+
+  * This change required modifications to librte_ether and all vdev and pdev PMD's.
+
 Resolved Issues
 ---------------
 
diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index ce1d000..2fce370 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -424,7 +424,7 @@ rte_eth_dev_socket_id(uint8_t port_id)
 {
 	if (!rte_eth_dev_is_valid_port(port_id))
 		return -1;
-	return rte_eth_devices[port_id].pci_dev->numa_node;
+	return rte_eth_devices[port_id].data->numa_node;
 }
 
 uint8_t
@@ -503,27 +503,25 @@ rte_eth_dev_get_name_by_port(uint8_t port_id, char *name)
 static int
 rte_eth_dev_is_detachable(uint8_t port_id)
 {
-	uint32_t drv_flags;
+	uint32_t dev_flags;
 
 	if (!rte_eth_dev_is_valid_port(port_id)) {
 		PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
 		return -EINVAL;
 	}
 
-	if (rte_eth_devices[port_id].dev_type == RTE_ETH_DEV_PCI) {
-		switch (rte_eth_devices[port_id].pci_dev->kdrv) {
-		case RTE_KDRV_IGB_UIO:
-		case RTE_KDRV_UIO_GENERIC:
-		case RTE_KDRV_NIC_UIO:
-			break;
-		case RTE_KDRV_VFIO:
-		default:
-			return -ENOTSUP;
-		}
+	switch (rte_eth_devices[port_id].data->kdrv) {
+	case RTE_KDRV_IGB_UIO:
+	case RTE_KDRV_UIO_GENERIC:
+	case RTE_KDRV_NIC_UIO:
+	case RTE_KDRV_NONE:
+		break;
+	case RTE_KDRV_VFIO:
+	default:
+		return -ENOTSUP;
 	}
-
-	drv_flags = rte_eth_devices[port_id].driver->pci_drv.drv_flags;
-	return !(drv_flags & RTE_PCI_DRV_DETACHABLE);
+	dev_flags = rte_eth_devices[port_id].data->dev_flags;
+	return !(dev_flags & RTE_ETH_DEV_DETACHABLE);
 }
 
 /* attach the new physical device, then store port_id of the device */
@@ -1143,14 +1141,11 @@ rte_eth_dev_configure(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 	 * If link state interrupt is enabled, check that the
 	 * device supports it.
 	 */
-	if (dev_conf->intr_conf.lsc == 1) {
-		const struct rte_pci_driver *pci_drv = &dev->driver->pci_drv;
-
-		if (!(pci_drv->drv_flags & RTE_PCI_DRV_INTR_LSC)) {
+	if ((dev_conf->intr_conf.lsc == 1) &&
+		(!(dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC))) {
 			PMD_DEBUG_TRACE("driver %s does not support lsc\n",
-					pci_drv->name);
+					dev->data->drv_name);
 			return -EINVAL;
-		}
 	}
 
 	/*
@@ -1795,8 +1790,7 @@ rte_eth_dev_info_get(uint8_t port_id, struct rte_eth_dev_info *dev_info)
 	FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
 	(*dev->dev_ops->dev_infos_get)(dev, dev_info);
 	dev_info->pci_dev = dev->pci_dev;
-	if (dev->driver)
-		dev_info->driver_name = dev->driver->pci_drv.name;
+	dev_info->driver_name = dev->data->drv_name;
 }
 
 void
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 22/28] null: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (20 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 21/28] librte_ether: remove branches on pci_dev Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 23/28] ring: " Bernard Iremonger
                     ` (7 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

remove rte_null_pmd and pci_dev.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/null/rte_eth_null.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index d34b60e..f12f31e 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -379,7 +379,6 @@ eth_dev_null_create(const char *name,
 	const unsigned nb_rx_queues = 1;
 	const unsigned nb_tx_queues = 1;
 	struct rte_eth_dev_data *data = NULL;
-	struct rte_pci_device *pci_dev = NULL;
 	struct pmd_internals *internals = NULL;
 	struct rte_eth_dev *eth_dev = NULL;
 
@@ -396,10 +395,6 @@ eth_dev_null_create(const char *name,
 	if (data == NULL)
 		goto error;
 
-	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
-	if (pci_dev == NULL)
-		goto error;
-
 	internals = rte_zmalloc_socket(name, sizeof(*internals), 0, numa_node);
 	if (internals == NULL)
 		goto error;
@@ -411,8 +406,8 @@ eth_dev_null_create(const char *name,
 
 	/* now put it all together
 	 * - store queue data in internals,
-	 * - store numa_node info in pci_driver
-	 * - point eth_dev_data to internals and pci_driver
+	 * - store numa_node info in ethdev data
+	 * - point eth_dev_data to internals
 	 * - and point eth_dev structure to new eth_dev_data structure
 	 */
 	/* NOTE: we'll replace the data element, of originally allocated eth_dev
@@ -424,8 +419,6 @@ eth_dev_null_create(const char *name,
 	internals->packet_copy = packet_copy;
 	internals->numa_node = numa_node;
 
-	pci_dev->numa_node = numa_node;
-
 	data->dev_private = internals;
 	data->port_id = eth_dev->data->port_id;
 	data->nb_rx_queues = (uint16_t)nb_rx_queues;
@@ -455,7 +448,6 @@ eth_dev_null_create(const char *name,
 
 error:
 	rte_free(data);
-	rte_free(pci_dev);
 	rte_free(internals);
 
 	return -1;
@@ -558,14 +550,13 @@ rte_pmd_null_devuninit(const char *name)
 	RTE_LOG(INFO, PMD, "Closing null ethdev on numa socket %u\n",
 			rte_socket_id());
 
-	/* reserve an ethdev entry */
+	/* find the ethdev entry */
 	eth_dev = rte_eth_dev_allocated(name);
 	if (eth_dev == NULL)
 		return -1;
 
 	rte_free(eth_dev->data->dev_private);
 	rte_free(eth_dev->data);
-	rte_free(eth_dev->pci_dev);
 
 	rte_eth_dev_release_port(eth_dev);
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 23/28] ring: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (21 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 22/28] null: remove pci device Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 24/28] pcap: " Bernard Iremonger
                     ` (6 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

remove rte_ring_pmd and pci_dev.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/ring/rte_eth_ring.c | 24 ------------------------
 1 file changed, 24 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 77ac23a..faa5759 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -44,8 +44,6 @@
 #define ETH_RING_ACTION_CREATE		"CREATE"
 #define ETH_RING_ACTION_ATTACH		"ATTACH"
 
-static const char *ring_ethdev_driver_name = "Ring PMD";
-
 static const char *valid_arguments[] = {
 	ETH_RING_NUMA_NODE_ACTION_ARG,
 	NULL
@@ -252,15 +250,6 @@ static const struct eth_dev_ops ops = {
 	.mac_addr_add = eth_mac_addr_add,
 };
 
-static struct eth_driver rte_ring_pmd = {
-	.pci_drv = {
-		.name = "rte_ring_pmd",
-		.drv_flags = RTE_PCI_DRV_DETACHABLE,
-	},
-};
-
-static struct rte_pci_id id_table;
-
 int
 rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		const unsigned nb_rx_queues,
@@ -269,7 +258,6 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		const unsigned numa_node)
 {
 	struct rte_eth_dev_data *data = NULL;
-	struct rte_pci_device *pci_dev = NULL;
 	struct pmd_internals *internals = NULL;
 	struct rte_eth_dev *eth_dev = NULL;
 
@@ -291,10 +279,6 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 	if (data == NULL)
 		goto error;
 
-	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
-	if (pci_dev == NULL)
-		goto error;
-
 	internals = rte_zmalloc_socket(name, sizeof(*internals), 0, numa_node);
 	if (internals == NULL)
 		goto error;
@@ -322,12 +306,6 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		internals->tx_ring_queues[i].rng = tx_queues[i];
 	}
 
-	rte_ring_pmd.pci_drv.name = ring_ethdev_driver_name;
-	rte_ring_pmd.pci_drv.id_table = &id_table;
-
-	pci_dev->numa_node = numa_node;
-	pci_dev->driver = &rte_ring_pmd.pci_drv;
-
 	data->dev_private = internals;
 	data->port_id = eth_dev->data->port_id;
 	memmove(data->name, eth_dev->data->name, sizeof(data->name));
@@ -354,7 +332,6 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 
 error:
 	rte_free(data);
-	rte_free(pci_dev);
 	rte_free(internals);
 
 	return -1;
@@ -564,7 +541,6 @@ rte_pmd_ring_devuninit(const char *name)
 	eth_dev_stop(eth_dev);
 	rte_free(eth_dev->data->dev_private);
 	rte_free(eth_dev->data);
-	rte_free(eth_dev->pci_dev);
 
 	rte_eth_dev_release_port(eth_dev);
 	return 0;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 24/28] pcap: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (22 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 23/28] ring: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 25/28] af_packet: " Bernard Iremonger
                     ` (5 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

remove rte_pcap_pmd and pci_dev.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/pcap/rte_eth_pcap.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index 850274c..f9230eb 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -617,13 +617,6 @@ static const struct eth_dev_ops ops = {
 	.stats_reset = eth_stats_reset,
 };
 
-static struct eth_driver rte_pcap_pmd = {
-	.pci_drv = {
-		.name = "rte_pcap_pmd",
-		.drv_flags = RTE_PCI_DRV_DETACHABLE,
-	},
-};
-
 /*
  * Function handler that opens the pcap file for reading a stores a
  * reference of it for use it later on.
@@ -806,7 +799,6 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 		struct rte_kvargs *kvlist)
 {
 	struct rte_eth_dev_data *data = NULL;
-	struct rte_pci_device *pci_dev = NULL;
 	unsigned k_idx;
 	struct rte_kvargs_pair *pair = NULL;
 
@@ -819,17 +811,13 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 	RTE_LOG(INFO, PMD,
 			"Creating pcap-backed ethdev on numa socket %u\n", numa_node);
 
-	/* now do all data allocation - for eth_dev structure, dummy pci driver
+	/* now do all data allocation - for eth_dev structure
 	 * and internal (private) data
 	 */
 	data = rte_zmalloc_socket(name, sizeof(*data), 0, numa_node);
 	if (data == NULL)
 		goto error;
 
-	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
-	if (pci_dev == NULL)
-		goto error;
-
 	*internals = rte_zmalloc_socket(name, sizeof(**internals), 0, numa_node);
 	if (*internals == NULL)
 		goto error;
@@ -860,8 +848,6 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 	else
 		(*internals)->if_index = if_nametoindex(pair->value);
 
-	pci_dev->numa_node = numa_node;
-
 	data->dev_private = *internals;
 	data->port_id = (*eth_dev)->data->port_id;
 	snprintf(data->name, sizeof(data->name), "%s", (*eth_dev)->data->name);
@@ -884,7 +870,6 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 
 error:
 	rte_free(data);
-	rte_free(pci_dev);
 	rte_free(*internals);
 
 	return -1;
@@ -1099,7 +1084,6 @@ rte_pmd_pcap_devuninit(const char *name)
 
 	rte_free(eth_dev->data->dev_private);
 	rte_free(eth_dev->data);
-	rte_free(eth_dev->pci_dev);
 
 	rte_eth_dev_release_port(eth_dev);
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 25/28] af_packet: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (23 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 24/28] pcap: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:19     ` John W. Linville
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 26/28] xenvirt: " Bernard Iremonger
                     ` (4 subsequent siblings)
  29 siblings, 1 reply; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index 2f14482..3237e6e 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -432,7 +432,6 @@ rte_pmd_init_internals(const char *name,
                        struct rte_kvargs *kvlist)
 {
 	struct rte_eth_dev_data *data = NULL;
-	struct rte_pci_device *pci_dev = NULL;
 	struct rte_kvargs_pair *pair = NULL;
 	struct ifreq ifr;
 	size_t ifnamelen;
@@ -470,10 +469,6 @@ rte_pmd_init_internals(const char *name,
 	if (data == NULL)
 		goto error_early;
 
-	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
-	if (pci_dev == NULL)
-		goto error_early;
-
 	*internals = rte_zmalloc_socket(name, sizeof(**internals),
 	                                0, numa_node);
 	if (*internals == NULL)
@@ -670,8 +665,6 @@ rte_pmd_init_internals(const char *name,
 	data->dev_link = pmd_link;
 	data->mac_addrs = &(*internals)->eth_addr;
 
-	pci_dev->numa_node = numa_node;
-
 	(*eth_dev)->data = data;
 	(*eth_dev)->dev_ops = &ops;
 	(*eth_dev)->driver = NULL;
@@ -697,7 +690,6 @@ error:
 	}
 	rte_free(*internals);
 error_early:
-	rte_free(pci_dev);
 	rte_free(data);
 	return -1;
 }
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 26/28] xenvirt: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (24 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 25/28] af_packet: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 27/28] mpipe: " Bernard Iremonger
                     ` (3 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/xenvirt/rte_eth_xenvirt.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/net/xenvirt/rte_eth_xenvirt.c b/drivers/net/xenvirt/rte_eth_xenvirt.c
index 1895b16..1f00d03 100644
--- a/drivers/net/xenvirt/rte_eth_xenvirt.c
+++ b/drivers/net/xenvirt/rte_eth_xenvirt.c
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
@@ -617,7 +617,6 @@ eth_dev_xenvirt_create(const char *name, const char *params,
                 enum dev_action action)
 {
 	struct rte_eth_dev_data *data = NULL;
-	struct rte_pci_device *pci_dev = NULL;
 	struct pmd_internals *internals = NULL;
 	struct rte_eth_dev *eth_dev = NULL;
 	struct xenvirt_dict dict;
@@ -639,10 +638,6 @@ eth_dev_xenvirt_create(const char *name, const char *params,
 	if (data == NULL)
 		goto err;
 
-	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
-	if (pci_dev == NULL)
-		goto err;
-
 	internals = rte_zmalloc_socket(name, sizeof(*internals), 0, numa_node);
 	if (internals == NULL)
 		goto err;
@@ -652,8 +647,6 @@ eth_dev_xenvirt_create(const char *name, const char *params,
 	if (eth_dev == NULL)
 		goto err;
 
-	pci_dev->numa_node = numa_node;
-
 	data->dev_private = internals;
 	data->port_id = eth_dev->data->port_id;
 	data->nb_rx_queues = (uint16_t)1;
@@ -684,7 +677,6 @@ eth_dev_xenvirt_create(const char *name, const char *params,
 
 err:
 	rte_free(data);
-	rte_free(pci_dev);
 	rte_free(internals);
 
 	return -1;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 27/28] mpipe: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (25 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 26/28] xenvirt: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 28/28] bonding: " Bernard Iremonger
                     ` (2 subsequent siblings)
  29 siblings, 0 replies; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/mpipe/mpipe_tilegx.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/mpipe/mpipe_tilegx.c b/drivers/net/mpipe/mpipe_tilegx.c
index 4dc32f7..35134ba 100644
--- a/drivers/net/mpipe/mpipe_tilegx.c
+++ b/drivers/net/mpipe/mpipe_tilegx.c
@@ -123,7 +123,6 @@ struct mpipe_dev_priv {
 	int channel;			/* Device channel. */
 	int port_id;			/* DPDK port index. */
 	struct rte_eth_dev *eth_dev;	/* DPDK device. */
-	struct rte_pci_device pci_dev;	/* PCI device data. */
 	struct rte_mbuf **tx_comps;	/* TX completion array. */
 	struct rte_mempool *rx_mpool;	/* mpool used by the rx queues. */
 	unsigned rx_offset;		/* Receive head room. */
@@ -1568,7 +1567,6 @@ rte_pmd_mpipe_devinit(const char *ifname,
 	priv->context = context;
 	priv->instance = instance;
 	priv->is_xaui = (strncmp(ifname, "xgbe", 4) == 0);
-	priv->pci_dev.numa_node = instance;
 	priv->channel = -1;
 
 	mac = priv->mac_addr.addr_bytes;
@@ -1593,7 +1591,6 @@ rte_pmd_mpipe_devinit(const char *ifname,
 	priv->eth_dev = eth_dev;
 	priv->port_id = eth_dev->data->port_id;
 	eth_dev->data->dev_private = priv;
-	eth_dev->pci_dev = &priv->pci_dev;
 	eth_dev->data->mac_addrs = &priv->mac_addr;
 
 	eth_dev->data->dev_flags = 0;
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [dpdk-dev] [PATCH v7 28/28] bonding: remove pci device
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (26 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 27/28] mpipe: " Bernard Iremonger
@ 2015-10-30 15:08   ` Bernard Iremonger
  2015-11-01 21:35     ` Thomas Monjalon
  2015-10-30 15:21   ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Thomas Monjalon
  2015-11-02  5:28   ` Qiu, Michael
  29 siblings, 1 reply; 48+ messages in thread
From: Bernard Iremonger @ 2015-10-30 15:08 UTC (permalink / raw)
  To: dev

remove pci_dev, pci_drv, rte_bond_pmd and pci_id_table.
handle numa_node for vdevs
handle RTE_ETH_DEV_INTR_LSC for vdevs
rename valid_bonded_device to check_for_bonded_device
remove branches on pci_dev

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.c  |  4 +--
 drivers/net/bonding/rte_eth_bond_alb.c     |  2 +-
 drivers/net/bonding/rte_eth_bond_api.c     | 51 ++++++------------------------
 drivers/net/bonding/rte_eth_bond_pmd.c     | 18 +++++------
 drivers/net/bonding/rte_eth_bond_private.h |  2 +-
 5 files changed, 23 insertions(+), 54 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index c0f0b99..ee2964a 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
@@ -879,7 +879,7 @@ bond_mode_8023ad_activate_slave(struct rte_eth_dev *bond_dev, uint8_t slave_id)
 
 	RTE_VERIFY(port->rx_ring == NULL);
 	RTE_VERIFY(port->tx_ring == NULL);
-	socket_id = rte_eth_devices[slave_id].pci_dev->numa_node;
+	socket_id = rte_eth_devices[slave_id].data->numa_node;
 
 	element_size = sizeof(struct slow_protocol_frame) + sizeof(struct rte_mbuf)
 				+ RTE_PKTMBUF_HEADROOM;
diff --git a/drivers/net/bonding/rte_eth_bond_alb.c b/drivers/net/bonding/rte_eth_bond_alb.c
index 6df318e..3157543 100644
--- a/drivers/net/bonding/rte_eth_bond_alb.c
+++ b/drivers/net/bonding/rte_eth_bond_alb.c
@@ -65,7 +65,7 @@ bond_mode_alb_enable(struct rte_eth_dev *bond_dev)
 
 	uint16_t data_size;
 	char mem_name[RTE_ETH_NAME_MAX_LEN];
-	int socket_id = bond_dev->pci_dev->numa_node;
+	int socket_id = bond_dev->data->numa_node;
 
 	/* Fill hash table with initial values */
 	memset(hash_table, 0, sizeof(struct client_data) * ALB_HASH_TABLE_SIZE);
diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c
index a852dd2..c2b626a 100644
--- a/drivers/net/bonding/rte_eth_bond_api.c
+++ b/drivers/net/bonding/rte_eth_bond_api.c
@@ -47,14 +47,17 @@
 const char pmd_bond_driver_name[] = "rte_bond_pmd";
 
 int
-valid_bonded_ethdev(const struct rte_eth_dev *eth_dev)
+check_for_bonded_ethdev(const struct rte_eth_dev *eth_dev)
 {
 	/* Check valid pointer */
-	if (eth_dev->driver->pci_drv.name == NULL)
+	if (!eth_dev)
 		return -1;
 
-	/* return 0 if driver name matches */
-	return eth_dev->driver->pci_drv.name != pmd_bond_driver_name;
+	/* return 0 if bonded device */
+	if (eth_dev->data->dev_flags & RTE_ETH_DEV_BONDED)
+		return 0;
+	else
+		return 1;
 }
 
 int
@@ -63,7 +66,7 @@ valid_bonded_port_id(uint8_t port_id)
 	if (!rte_eth_dev_is_valid_port(port_id))
 		return -1;
 
-	return valid_bonded_ethdev(&rte_eth_devices[port_id]);
+	return check_for_bonded_ethdev(&rte_eth_devices[port_id]);
 }
 
 int
@@ -74,7 +77,7 @@ valid_slave_port_id(uint8_t port_id)
 		return -1;
 
 	/* Verify that port_id refers to a non bonded port */
-	if (!valid_bonded_ethdev(&rte_eth_devices[port_id]))
+	if (check_for_bonded_ethdev(&rte_eth_devices[port_id]) == 0)
 		return -1;
 
 	return 0;
@@ -165,30 +168,11 @@ number_of_sockets(void)
 	return ++sockets;
 }
 
-const char pmd_bond_driver_name[] = "rte_bond_pmd";
-
-static struct rte_pci_id pci_id_table = {
-	.device_id = PCI_ANY_ID,
-	.subsystem_device_id = PCI_ANY_ID,
-	.vendor_id = PCI_ANY_ID,
-	.subsystem_vendor_id = PCI_ANY_ID,
-};
-
-static struct eth_driver rte_bond_pmd = {
-	.pci_drv = {
-		.name = pmd_bond_driver_name,
-		.drv_flags = RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_DETACHABLE,
-		.id_table = &pci_id_table,
-	},
-};
-
 int
 rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
 {
-	struct rte_pci_device *pci_dev = NULL;
 	struct bond_dev_private *internals = NULL;
 	struct rte_eth_dev *eth_dev = NULL;
-	struct rte_pci_driver *pci_drv = NULL;
 
 	/* now do all data allocation - for eth_dev structure, dummy pci driver
 	 * and internal (private) data
@@ -205,14 +189,6 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
 		goto err;
 	}
 
-	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, socket_id);
-	if (pci_dev == NULL) {
-		RTE_BOND_LOG(ERR, "Unable to malloc pci dev on socket");
-		goto err;
-	}
-
-	pci_drv = &rte_bond_pmd.pci_drv;
-
 	internals = rte_zmalloc_socket(name, sizeof(*internals), 0, socket_id);
 	if (internals == NULL) {
 		RTE_BOND_LOG(ERR, "Unable to malloc internals on socket");
@@ -226,11 +202,6 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
 		goto err;
 	}
 
-	pci_dev->numa_node = socket_id;
-	pci_drv->name = pmd_bond_driver_name;
-	pci_dev->driver = pci_drv;
-
-	eth_dev->driver = &rte_bond_pmd;
 	eth_dev->data->dev_private = internals;
 	eth_dev->data->nb_rx_queues = (uint16_t)1;
 	eth_dev->data->nb_tx_queues = (uint16_t)1;
@@ -294,7 +265,6 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)
 	return eth_dev->data->port_id;
 
 err:
-	rte_free(pci_dev);
 	rte_free(internals);
 	if (eth_dev != NULL) {
 		rte_free(eth_dev->data->mac_addrs);
@@ -326,7 +296,6 @@ rte_eth_bond_free(const char *name)
 	eth_dev->rx_pkt_burst = NULL;
 	eth_dev->tx_pkt_burst = NULL;
 
-	rte_free(eth_dev->pci_dev);
 	rte_free(eth_dev->data->dev_private);
 	rte_free(eth_dev->data->mac_addrs);
 
@@ -355,7 +324,7 @@ __eth_bond_slave_add_lock_free(uint8_t bonded_port_id, uint8_t slave_port_id)
 	/* Verify that new slave device is not already a slave of another
 	 * bonded device */
 	for (i = rte_eth_dev_count()-1; i >= 0; i--) {
-		if (valid_bonded_ethdev(&rte_eth_devices[i]) == 0) {
+		if (check_for_bonded_ethdev(&rte_eth_devices[i]) == 0) {
 			temp_internals = rte_eth_devices[i].data->dev_private;
 
 			for (j = 0; j < temp_internals->slave_count; j++) {
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 5cc6372..016c9cb 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1307,7 +1307,7 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
 	rte_eth_dev_stop(slave_eth_dev->data->port_id);
 
 	/* Enable interrupts on slave device if supported */
-	if (slave_eth_dev->driver->pci_drv.drv_flags & RTE_PCI_DRV_INTR_LSC)
+	if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
 		slave_eth_dev->data->dev_conf.intr_conf.lsc = 1;
 
 	/* Configure device */
@@ -1362,9 +1362,9 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
 	}
 
 	/* If lsc interrupt is set, check initial slave's link status */
-	if (slave_eth_dev->driver->pci_drv.drv_flags & RTE_PCI_DRV_INTR_LSC)
+	if (slave_eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
 		bond_ethdev_lsc_event_callback(slave_eth_dev->data->port_id,
-				RTE_ETH_EVENT_INTR_LSC, &bonded_eth_dev->data->port_id);
+			RTE_ETH_EVENT_INTR_LSC, &bonded_eth_dev->data->port_id);
 
 	return 0;
 }
@@ -1403,7 +1403,7 @@ slave_add(struct bond_dev_private *internals,
 
 	/* If slave device doesn't support interrupts then we need to enabled
 	 * polling to monitor link status */
-	if (!(slave_eth_dev->pci_dev->driver->drv_flags & RTE_PCI_DRV_INTR_LSC)) {
+	if (!(slave_eth_dev->data->dev_flags & RTE_PCI_DRV_INTR_LSC)) {
 		slave_details->link_status_poll_enabled = 1;
 
 		if (!internals->link_status_polling_enabled) {
@@ -1447,7 +1447,7 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
 	int i;
 
 	/* slave eth dev will be started by bonded device */
-	if (valid_bonded_ethdev(eth_dev)) {
+	if (check_for_bonded_ethdev(eth_dev)) {
 		RTE_BOND_LOG(ERR, "User tried to explicitly start a slave eth_dev (%d)",
 				eth_dev->data->port_id);
 		return -1;
@@ -1592,7 +1592,7 @@ bond_ethdev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->max_tx_queues = (uint16_t)512;
 
 	dev_info->min_rx_bufsize = 0;
-	dev_info->pci_dev = dev->pci_dev;
+	dev_info->pci_dev = NULL;
 
 	dev_info->rx_offload_capa = internals->rx_offload_capa;
 	dev_info->tx_offload_capa = internals->tx_offload_capa;
@@ -1605,7 +1605,7 @@ bond_ethdev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 {
 	struct bond_rx_queue *bd_rx_q = (struct bond_rx_queue *)
 			rte_zmalloc_socket(NULL, sizeof(struct bond_rx_queue),
-					0, dev->pci_dev->numa_node);
+					0, dev->data->numa_node);
 	if (bd_rx_q == NULL)
 		return -1;
 
@@ -1629,7 +1629,7 @@ bond_ethdev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 {
 	struct bond_tx_queue *bd_tx_q  = (struct bond_tx_queue *)
 			rte_zmalloc_socket(NULL, sizeof(struct bond_tx_queue),
-					0, dev->pci_dev->numa_node);
+					0, dev->data->numa_node);
 
 	if (bd_tx_q == NULL)
 		return -1;
@@ -1873,7 +1873,7 @@ bond_ethdev_lsc_event_callback(uint8_t port_id, enum rte_eth_event_type type,
 	bonded_eth_dev = &rte_eth_devices[*(uint8_t *)param];
 	slave_eth_dev = &rte_eth_devices[port_id];
 
-	if (valid_bonded_ethdev(bonded_eth_dev))
+	if (check_for_bonded_ethdev(bonded_eth_dev))
 		return;
 
 	internals = bonded_eth_dev->data->dev_private;
diff --git a/drivers/net/bonding/rte_eth_bond_private.h b/drivers/net/bonding/rte_eth_bond_private.h
index 038bca6..82dadfc 100644
--- a/drivers/net/bonding/rte_eth_bond_private.h
+++ b/drivers/net/bonding/rte_eth_bond_private.h
@@ -162,7 +162,7 @@ struct bond_dev_private {
 extern struct eth_dev_ops default_dev_ops;
 
 int
-valid_bonded_ethdev(const struct rte_eth_dev *eth_dev);
+check_for_bonded_ethdev(const struct rte_eth_dev *eth_dev);
 
 /* Search given slave array to find possition of given id.
  * Return slave pos or slaves_count if not found. */
-- 
1.9.1

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 17/28] af_packet: copy device info to eth_dev data
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 17/28] af_packet: " Bernard Iremonger
@ 2015-10-30 15:17     ` John W. Linville
  0 siblings, 0 replies; 48+ messages in thread
From: John W. Linville @ 2015-10-30 15:17 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

On Fri, Oct 30, 2015 at 03:08:42PM +0000, Bernard Iremonger wrote:
> initialise dev_flags, driver, kdrv, drv_name and numa_node fields in eth_dev data.
> 
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: John W. Linville <linville@tuxdriver.com>

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 25/28] af_packet: remove pci device
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 25/28] af_packet: " Bernard Iremonger
@ 2015-10-30 15:19     ` John W. Linville
  0 siblings, 0 replies; 48+ messages in thread
From: John W. Linville @ 2015-10-30 15:19 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

On Fri, Oct 30, 2015 at 03:08:50PM +0000, Bernard Iremonger wrote:
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: John W. Linville <linville@tuxdriver.com>

-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (27 preceding siblings ...)
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 28/28] bonding: " Bernard Iremonger
@ 2015-10-30 15:21   ` Thomas Monjalon
  2015-10-30 15:28     ` Iremonger, Bernard
  2015-11-02  5:28   ` Qiu, Michael
  29 siblings, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-10-30 15:21 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

2015-10-30 15:08, Bernard Iremonger:
> Changes in v7:
> rebase to latest code.

Please Bernard, be kind and change the status of your previous patchset.
I'm tired to do it for 28 patches each time you rebase.
By the way, it is not needed to do a patch per driver when it is the
same oneliner without any explanation message.

> Bernard Iremonger (28):
>   librte_eal: add RTE_KDRV_NONE for vdevs
>   librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
>   librte_ether: add function rte_eth_copy_dev_info
>   ixgbe: copy pci device info to eth_dev data
>   e1000: copy pci device info to eth_dev data
>   i40e: copy pci device info to eth_dev data
>   fm10k: copy pci device info to eth_dev data
>   bnx2x: copy pci device info to eth_dev data
>   cxgbe: copy pci device info to eth_dev data
>   enic: copy pci device info to eth_dev data
>   mlx4: copy pci device info to eth_dev data
>   virtio: copy pci device info to eth_dev data
>   vmxnet3: copy pci device info to eth_dev data
>   null: copy device info to eth_dev data
>   ring: copy device info to eth_dev data
>   pcap: copy device info to eth_dev data
>   af_packet: copy device info to eth_dev data
>   xenvirt: copy device info to eth_dev data
>   mpipe: copy device info to eth_dev data
>   bonding: copy device info to eth_dev data
>   librte_ether: remove branches on pci_dev
>   null: remove pci device
>   ring: remove pci device
>   pcap: remove pci device
>   af_packet: remove pci device
>   xenvirt: remove pci device
>   mpipe: remove pci device
>   bonding: remove pci device

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
  2015-10-30 15:21   ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Thomas Monjalon
@ 2015-10-30 15:28     ` Iremonger, Bernard
  0 siblings, 0 replies; 48+ messages in thread
From: Iremonger, Bernard @ 2015-10-30 15:28 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

<snip>

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Friday, October 30, 2015 3:22 PM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
> 
> 2015-10-30 15:08, Bernard Iremonger:
> > Changes in v7:
> > rebase to latest code.
> 
> Please Bernard, be kind and change the status of your previous patchset.

Will do.

Regards,

Bernard.
<snip>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 13/28] vmxnet3: copy pci device info to eth_dev data
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 13/28] vmxnet3: " Bernard Iremonger
@ 2015-10-31  8:39     ` Yong Wang
  0 siblings, 0 replies; 48+ messages in thread
From: Yong Wang @ 2015-10-31  8:39 UTC (permalink / raw)
  To: Bernard Iremonger, dev


On 10/30/15, 8:08 AM, "Bernard Iremonger" <bernard.iremonger@intel.com> wrote:





>Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
>Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>---

Acked-by: Yong Wang <yongwang@vmware.com>

> drivers/net/vmxnet3/vmxnet3_ethdev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
>index a70be5c..2beee3e 100644
>--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
>+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
>@@ -235,6 +235,8 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
> 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> 		return 0;
> 
>+	rte_eth_copy_dev_info(eth_dev, pci_dev);
>+
> 	/* Vendor and Device ID need to be set before init of shared code */
> 	hw->device_id = pci_dev->id.device_id;
> 	hw->vendor_id = pci_dev->id.vendor_id;
>-- 
>1.9.1
>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data Bernard Iremonger
@ 2015-11-01 21:12     ` Thomas Monjalon
  2015-11-02 10:36       ` Iremonger, Bernard
  2015-11-01 21:41     ` Thomas Monjalon
  1 sibling, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-01 21:12 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

2015-10-30 15:08, Bernard Iremonger:
> add dev_flags to rte_eth_dev_data, add macros for dev_flags.
> add kdrv to rte_eth_dev_data.
> add numa_node to rte_eth_dev_data.
> add drv_name to rte_eth_dev_data.

A commit message should explain why things are done.

> +	uint32_t dev_flags; /**< Flags controlling handling of device. */

Where are defined this flags? What is the scope?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info Bernard Iremonger
@ 2015-11-01 21:30     ` Thomas Monjalon
  2015-11-02 10:24       ` Iremonger, Bernard
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-01 21:30 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

2015-10-30 15:08, Bernard Iremonger:
> +/**
> + * Copy pci device info to the Ethernet device data.
[...]
> +extern void rte_eth_copy_dev_info(struct rte_eth_dev *eth_dev, struct rte_pci_device *pci_dev);

This function should have the word "pci" in its name.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 28/28] bonding: remove pci device
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 28/28] bonding: " Bernard Iremonger
@ 2015-11-01 21:35     ` Thomas Monjalon
  2015-11-02 10:27       ` Iremonger, Bernard
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-01 21:35 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

2015-10-30 15:08, Bernard Iremonger:
> +       /* return 0 if bonded device */
> +       if (eth_dev->data->dev_flags & RTE_ETH_DEV_BONDED)
> +               return 0;
> +       else
> +               return 1;
> 

Why it is not a private data of the bonding device?
Why the check on the device name is not relevant anymore?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data Bernard Iremonger
  2015-11-01 21:12     ` Thomas Monjalon
@ 2015-11-01 21:41     ` Thomas Monjalon
  2015-11-02 10:33       ` Iremonger, Bernard
  1 sibling, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-01 21:41 UTC (permalink / raw)
  To: Bernard Iremonger; +Cc: dev

2015-10-30 15:08, Bernard Iremonger:
> +/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO) */
> +#define RTE_ETH_DEV_DRV_NEED_MAPPING   RTE_PCI_DRV_NEED_MAPPING
> +/** Device needs to be unbound even if no module is provided */
> +#define RTE_ETH_DEV_DRV_FORCE_UNBIND   RTE_PCI_DRV_FORCE_UNBIND
> +/** Device supports link state interrupt */
> +#define RTE_ETH_DEV_INTR_LSC   RTE_PCI_DRV_INTR_LSC
> +/** Device  supports detaching capability */
> +#define RTE_ETH_DEV_DETACHABLE RTE_PCI_DRV_DETACHABLE

Please, use an enum which has a name and can be referenced in the API,
e.g. the variable X contains some X_flags.
You should not try to re-use the same values as the PCI layer since it
will not be possible to map it forever when new buses will enter in the game.

> +/** Device  is a bonded device */
> +#define RTE_ETH_DEV_BONDED 0x0020

Why not having RTE_ETH_DEV_PCAPED? ;)
Please try to remove this flag.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
  2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
                     ` (28 preceding siblings ...)
  2015-10-30 15:21   ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Thomas Monjalon
@ 2015-11-02  5:28   ` Qiu, Michael
  2015-11-02  7:35     ` Thomas Monjalon
  29 siblings, 1 reply; 48+ messages in thread
From: Qiu, Michael @ 2015-11-02  5:28 UTC (permalink / raw)
  To: Iremonger, Bernard, dev

Hi, Bernard

Could we merge some patch together? I see lots of patches are simple and
doing the same thing but in different NIC, merge them almost have no
affect of review, what's more it will make reviewers more comfortable
with less and simple patches.

Then we could have a clean patch set with almost 5 patches, not totally 28.

librte_eal: add RTE_KDRV_NONE for vdevs
librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
drivers: copy pci device info to eth_dev data
librte_ether: remove branches on pci_dev
drivers: remove pci device

At least, we could merge serial patches "xxxx:copy pci device info to
eth_dev data" to "drivers: copy pci device info to eth_dev data" in my mind.

Just an advise, but better to have.

Thanks,
Michael
On 2015/10/30 23:09, Bernard Iremonger wrote:
> There is a dummy pci driver in the vdev PMD's at present.
> This patch set removes the pci driver from the vdev PMD's.
> Changes have been made to librte_ether to handle vdevs and pdevs in the same way.
>
> The following vdev PMD's have had the pci driver removed:
>
> null
> ring
> bonding
> pcap
> af_packet
> xenvirt
> mpipe
>
> All the pdev PMD's have been modified to copy the pci device info into eth_dev data.
>
> Changes in v7:
> rebase to latest code.
>
> Changes in v6:
> Initialise data->drv_name with the PMD driver name in the vdevs.
> Remove two more branches on pci_dev from the bonding vdev.
>
> Changes in v5:
> rebase to latest code.
> refactor patches to avoid potential problems with git bisect.
>
> Changes in v4:
> rebase to latest code.
> add doxygen comments to rte_ethdev.h
> update release notes in patch 0002.
>
> Changes in v3:
> rebase to latest code.
> restructure patches 0002 and 0003 to fix compile issue in patch 0002.
>
> Changes in V2:
> rebase to latest code.
> fix compile error in rte_ethdev.c when debug disabled.
> remove Intel copyright from bnx2x, cxgbe, enic, mlx4, mpipe and null PMD's.
>
> Bernard Iremonger (28):
>   librte_eal: add RTE_KDRV_NONE for vdevs
>   librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
>   librte_ether: add function rte_eth_copy_dev_info
>   ixgbe: copy pci device info to eth_dev data
>   e1000: copy pci device info to eth_dev data
>   i40e: copy pci device info to eth_dev data
>   fm10k: copy pci device info to eth_dev data
>   bnx2x: copy pci device info to eth_dev data
>   cxgbe: copy pci device info to eth_dev data
>   enic: copy pci device info to eth_dev data
>   mlx4: copy pci device info to eth_dev data
>   virtio: copy pci device info to eth_dev data
>   vmxnet3: copy pci device info to eth_dev data
>   null: copy device info to eth_dev data
>   ring: copy device info to eth_dev data
>   pcap: copy device info to eth_dev data
>   af_packet: copy device info to eth_dev data
>   xenvirt: copy device info to eth_dev data
>   mpipe: copy device info to eth_dev data
>   bonding: copy device info to eth_dev data
>   librte_ether: remove branches on pci_dev
>   null: remove pci device
>   ring: remove pci device
>   pcap: remove pci device
>   af_packet: remove pci device
>   xenvirt: remove pci device
>   mpipe: remove pci device
>   bonding: remove pci device
>
>  doc/guides/rel_notes/release_2_2.rst       |  4 ++
>  drivers/net/af_packet/rte_eth_af_packet.c  | 20 ++++------
>  drivers/net/bnx2x/bnx2x_ethdev.c           |  3 ++
>  drivers/net/bonding/rte_eth_bond_8023ad.c  |  4 +-
>  drivers/net/bonding/rte_eth_bond_alb.c     |  2 +-
>  drivers/net/bonding/rte_eth_bond_api.c     | 60 +++++++++---------------------
>  drivers/net/bonding/rte_eth_bond_pmd.c     | 18 ++++-----
>  drivers/net/bonding/rte_eth_bond_private.h |  2 +-
>  drivers/net/cxgbe/cxgbe_ethdev.c           |  3 ++
>  drivers/net/e1000/em_ethdev.c              |  3 ++
>  drivers/net/e1000/igb_ethdev.c             |  5 +++
>  drivers/net/enic/enic_ethdev.c             |  1 +
>  drivers/net/fm10k/fm10k_ethdev.c           |  2 +
>  drivers/net/i40e/i40e_ethdev.c             |  3 ++
>  drivers/net/i40e/i40e_ethdev_vf.c          |  2 +
>  drivers/net/ixgbe/ixgbe_ethdev.c           |  4 ++
>  drivers/net/mlx4/mlx4.c                    |  3 ++
>  drivers/net/mpipe/mpipe_tilegx.c           | 10 +++--
>  drivers/net/null/rte_eth_null.c            | 29 ++++-----------
>  drivers/net/pcap/rte_eth_pcap.c            | 31 +++++----------
>  drivers/net/ring/rte_eth_ring.c            | 37 ++++--------------
>  drivers/net/virtio/virtio_ethdev.c         |  3 ++
>  drivers/net/vmxnet3/vmxnet3_ethdev.c       |  2 +
>  drivers/net/xenvirt/rte_eth_xenvirt.c      | 18 ++++-----
>  lib/librte_eal/common/include/rte_pci.h    |  3 +-
>  lib/librte_ether/rte_ethdev.c              | 54 +++++++++++++++------------
>  lib/librte_ether/rte_ethdev.h              | 29 +++++++++++++++
>  lib/librte_ether/rte_ether_version.map     |  7 ++++
>  28 files changed, 185 insertions(+), 177 deletions(-)
>


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
  2015-11-02  5:28   ` Qiu, Michael
@ 2015-11-02  7:35     ` Thomas Monjalon
  2015-11-02 10:13       ` Iremonger, Bernard
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-02  7:35 UTC (permalink / raw)
  To: Iremonger, Bernard; +Cc: dev

2015-11-02 05:28, Qiu, Michael:
> Hi, Bernard
> 
> Could we merge some patch together? I see lots of patches are simple and
> doing the same thing but in different NIC, merge them almost have no
> affect of review, what's more it will make reviewers more comfortable
> with less and simple patches.
> 
> Then we could have a clean patch set with almost 5 patches, not totally 28.
> 
> librte_eal: add RTE_KDRV_NONE for vdevs
> librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
> drivers: copy pci device info to eth_dev data
> librte_ether: remove branches on pci_dev
> drivers: remove pci device

Yes I agree with Michael

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs
  2015-11-02  7:35     ` Thomas Monjalon
@ 2015-11-02 10:13       ` Iremonger, Bernard
  0 siblings, 0 replies; 48+ messages in thread
From: Iremonger, Bernard @ 2015-11-02 10:13 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas, Michael,

<snip>

> > Hi, Bernard
> >
> > Could we merge some patch together? I see lots of patches are simple
> > and doing the same thing but in different NIC, merge them almost have
> > no affect of review, what's more it will make reviewers more
> > comfortable with less and simple patches.
> >
> > Then we could have a clean patch set with almost 5 patches, not totally 28.
> >
> > librte_eal: add RTE_KDRV_NONE for vdevs
> > librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
> > drivers: copy pci device info to eth_dev data
> > librte_ether: remove branches on pci_dev
> > drivers: remove pci device
> 
> Yes I agree with Michael

I will reduce the number of patches in the patch set.

Regards,

Bernard. 

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info
  2015-11-01 21:30     ` Thomas Monjalon
@ 2015-11-02 10:24       ` Iremonger, Bernard
  0 siblings, 0 replies; 48+ messages in thread
From: Iremonger, Bernard @ 2015-11-02 10:24 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Sunday, November 1, 2015 9:31 PM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v7 03/28] librte_ether: add function
> rte_eth_copy_dev_info
> 
> 2015-10-30 15:08, Bernard Iremonger:
> > +/**
> > + * Copy pci device info to the Ethernet device data.
> [...]
> > +extern void rte_eth_copy_dev_info(struct rte_eth_dev *eth_dev, struct
> rte_pci_device *pci_dev);
> 
> This function should have the word "pci" in its name.

I will rename to  rte_eth_copy_pci_info().

Regards,

Bernard.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 28/28] bonding: remove pci device
  2015-11-01 21:35     ` Thomas Monjalon
@ 2015-11-02 10:27       ` Iremonger, Bernard
  0 siblings, 0 replies; 48+ messages in thread
From: Iremonger, Bernard @ 2015-11-02 10:27 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

<snip>


> Subject: Re: [dpdk-dev] [PATCH v7 28/28] bonding: remove pci device
> 
> 2015-10-30 15:08, Bernard Iremonger:
> > +       /* return 0 if bonded device */
> > +       if (eth_dev->data->dev_flags & RTE_ETH_DEV_BONDED)
> > +               return 0;
> > +       else
> > +               return 1;
> >
> 
> Why it is not a private data of the bonding device?
> Why the check on the device name is not relevant anymore?

I had some issues with the device name while working on the bonding driver.
I will restore the check on device name.

Regards,

Bernard.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-11-01 21:41     ` Thomas Monjalon
@ 2015-11-02 10:33       ` Iremonger, Bernard
  0 siblings, 0 replies; 48+ messages in thread
From: Iremonger, Bernard @ 2015-11-02 10:33 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

<snip>

> Subject: Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from
> rte_pci_driver to rte_eth_dev_data
> 
> 2015-10-30 15:08, Bernard Iremonger:
> > +/** Device needs PCI BAR mapping (done with either IGB_UIO or VFIO)
> */
> > +#define RTE_ETH_DEV_DRV_NEED_MAPPING
> RTE_PCI_DRV_NEED_MAPPING
> > +/** Device needs to be unbound even if no module is provided */
> > +#define RTE_ETH_DEV_DRV_FORCE_UNBIND
> RTE_PCI_DRV_FORCE_UNBIND
> > +/** Device supports link state interrupt */
> > +#define RTE_ETH_DEV_INTR_LSC   RTE_PCI_DRV_INTR_LSC
> > +/** Device  supports detaching capability */ #define
> > +RTE_ETH_DEV_DETACHABLE RTE_PCI_DRV_DETACHABLE
> 
> Please, use an enum which has a name and can be referenced in the API, e.g.
> the variable X contains some X_flags.
> You should not try to re-use the same values as the PCI layer since it will not
> be possible to map it forever when new buses will enter in the game.

I will use an enum  instead.

 
> > +/** Device  is a bonded device */
> > +#define RTE_ETH_DEV_BONDED 0x0020
> 
> Why not having RTE_ETH_DEV_PCAPED? ;)
> Please try to remove this flag.

I will remove this flag.

Regards,

Bernard.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-11-01 21:12     ` Thomas Monjalon
@ 2015-11-02 10:36       ` Iremonger, Bernard
  2015-11-02 16:32         ` Thomas Monjalon
  0 siblings, 1 reply; 48+ messages in thread
From: Iremonger, Bernard @ 2015-11-02 10:36 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Sunday, November 1, 2015 9:12 PM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from
> rte_pci_driver to rte_eth_dev_data
> 
> 2015-10-30 15:08, Bernard Iremonger:
> > add dev_flags to rte_eth_dev_data, add macros for dev_flags.
> > add kdrv to rte_eth_dev_data.
> > add numa_node to rte_eth_dev_data.
> > add drv_name to rte_eth_dev_data.
> 
> A commit message should explain why things are done.
> 
> > +	uint32_t dev_flags; /**< Flags controlling handling of device. */
> 
> Where are defined this flags? What is the scope?

These flags are defined in the following file:

lib/librte_ether/rte_ethdev.h

These flags are visible to all the vdevs and pdevs.

Regards,

Bernard.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-11-02 10:36       ` Iremonger, Bernard
@ 2015-11-02 16:32         ` Thomas Monjalon
  2015-11-02 16:44           ` Iremonger, Bernard
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-02 16:32 UTC (permalink / raw)
  To: Iremonger, Bernard; +Cc: dev

2015-11-02 10:36, Iremonger, Bernard:
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > 2015-10-30 15:08, Bernard Iremonger:
> > > add dev_flags to rte_eth_dev_data, add macros for dev_flags.
> > > add kdrv to rte_eth_dev_data.
> > > add numa_node to rte_eth_dev_data.
> > > add drv_name to rte_eth_dev_data.
> > 
> > A commit message should explain why things are done.
> > 
> > > +	uint32_t dev_flags; /**< Flags controlling handling of device. */
> > 
> > Where are defined this flags? What is the scope?
> 
> These flags are defined in the following file:
> 
> lib/librte_ether/rte_ethdev.h
> 
> These flags are visible to all the vdevs and pdevs.

I mean it should be more explicit. Having an enum name will help.
Note: I understand your patch. I'm just asking the questions an user
will ask when trying to use your new API.
Thanks

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-11-02 16:32         ` Thomas Monjalon
@ 2015-11-02 16:44           ` Iremonger, Bernard
  2015-11-02 17:42             ` Thomas Monjalon
  0 siblings, 1 reply; 48+ messages in thread
From: Iremonger, Bernard @ 2015-11-02 16:44 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

<snip>

> Subject: Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from
> rte_pci_driver to rte_eth_dev_data
> 
> 2015-11-02 10:36, Iremonger, Bernard:
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > 2015-10-30 15:08, Bernard Iremonger:
> > > > add dev_flags to rte_eth_dev_data, add macros for dev_flags.
> > > > add kdrv to rte_eth_dev_data.
> > > > add numa_node to rte_eth_dev_data.
> > > > add drv_name to rte_eth_dev_data.
> > >
> > > A commit message should explain why things are done.
> > >
> > > > +	uint32_t dev_flags; /**< Flags controlling handling of device.
> > > > +*/
> > >
> > > Where are defined this flags? What is the scope?
> >
> > These flags are defined in the following file:
> >
> > lib/librte_ether/rte_ethdev.h
> >
> > These flags are visible to all the vdevs and pdevs.
> 
> I mean it should be more explicit. Having an enum name will help.
> Note: I understand your patch. I'm just asking the questions an user will ask
> when trying to use your new API.
> Thanks

I will try to be clearer in the commit message.
I tried an enum for the dev_flags but it does not work well.
There can be multiple flags set in dev_flags, it is intended to be a bit field similar to the pci flags.

I have squashed down to 19 patches now, I don't want to over squash.

Regards,

Bernard.

 

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data
  2015-11-02 16:44           ` Iremonger, Bernard
@ 2015-11-02 17:42             ` Thomas Monjalon
  0 siblings, 0 replies; 48+ messages in thread
From: Thomas Monjalon @ 2015-11-02 17:42 UTC (permalink / raw)
  To: Iremonger, Bernard; +Cc: dev

2015-11-02 16:44, Iremonger, Bernard:
> Hi Thomas,
> 
> <snip>
> 
> > Subject: Re: [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from
> > rte_pci_driver to rte_eth_dev_data
> > 
> > 2015-11-02 10:36, Iremonger, Bernard:
> > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > > 2015-10-30 15:08, Bernard Iremonger:
> > > > > add dev_flags to rte_eth_dev_data, add macros for dev_flags.
> > > > > add kdrv to rte_eth_dev_data.
> > > > > add numa_node to rte_eth_dev_data.
> > > > > add drv_name to rte_eth_dev_data.
> > > >
> > > > A commit message should explain why things are done.
> > > >
> > > > > +	uint32_t dev_flags; /**< Flags controlling handling of device.
> > > > > +*/
> > > >
> > > > Where are defined this flags? What is the scope?
> > >
> > > These flags are defined in the following file:
> > >
> > > lib/librte_ether/rte_ethdev.h
> > >
> > > These flags are visible to all the vdevs and pdevs.
> > 
> > I mean it should be more explicit. Having an enum name will help.
> > Note: I understand your patch. I'm just asking the questions an user will ask
> > when trying to use your new API.
> > Thanks
> 
> I will try to be clearer in the commit message.
> I tried an enum for the dev_flags but it does not work well.
> There can be multiple flags set in dev_flags, it is intended to be a bit field similar to the pci flags.

Yes. You can assign some bits in an enum.
But if you prefer the defines, it's also OK if they are clearly identifiable:
with a prefix and good comments allowing to map the structure field and the flags.

> I have squashed down to 19 patches now, I don't want to over squash.

The proposal of 5 patches was good.

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2015-11-02 17:44 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <PATCH v7>
2015-10-30 15:08 ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 01/28] librte_eal: add RTE_KDRV_NONE for vdevs Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 02/28] librte_ether: add fields from rte_pci_driver to rte_eth_dev_data Bernard Iremonger
2015-11-01 21:12     ` Thomas Monjalon
2015-11-02 10:36       ` Iremonger, Bernard
2015-11-02 16:32         ` Thomas Monjalon
2015-11-02 16:44           ` Iremonger, Bernard
2015-11-02 17:42             ` Thomas Monjalon
2015-11-01 21:41     ` Thomas Monjalon
2015-11-02 10:33       ` Iremonger, Bernard
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 03/28] librte_ether: add function rte_eth_copy_dev_info Bernard Iremonger
2015-11-01 21:30     ` Thomas Monjalon
2015-11-02 10:24       ` Iremonger, Bernard
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 04/28] ixgbe: copy pci device info to eth_dev data Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 05/28] e1000: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 06/28] i40e: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 07/28] fm10k: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 08/28] bnx2x: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 09/28] cxgbe: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 10/28] enic: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 11/28] mlx4: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 12/28] virtio: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 13/28] vmxnet3: " Bernard Iremonger
2015-10-31  8:39     ` Yong Wang
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 14/28] null: copy " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 15/28] ring: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 16/28] pcap: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 17/28] af_packet: " Bernard Iremonger
2015-10-30 15:17     ` John W. Linville
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 18/28] xenvirt: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 19/28] mpipe: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 20/28] bonding: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 21/28] librte_ether: remove branches on pci_dev Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 22/28] null: remove pci device Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 23/28] ring: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 24/28] pcap: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 25/28] af_packet: " Bernard Iremonger
2015-10-30 15:19     ` John W. Linville
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 26/28] xenvirt: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 27/28] mpipe: " Bernard Iremonger
2015-10-30 15:08   ` [dpdk-dev] [PATCH v7 28/28] bonding: " Bernard Iremonger
2015-11-01 21:35     ` Thomas Monjalon
2015-11-02 10:27       ` Iremonger, Bernard
2015-10-30 15:21   ` [dpdk-dev] [PATCH v7 00/28] remove pci driver from vdevs Thomas Monjalon
2015-10-30 15:28     ` Iremonger, Bernard
2015-11-02  5:28   ` Qiu, Michael
2015-11-02  7:35     ` Thomas Monjalon
2015-11-02 10:13       ` Iremonger, Bernard

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).