DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [RFC v2 00/13] Generalize rte_eth_dev model
@ 2016-12-19 21:59 Stephen Hemminger
  2016-12-19 21:59 ` [dpdk-dev] [PATCH 01/13] ethdev: increase length ethernet device internal name Stephen Hemminger
                   ` (13 more replies)
  0 siblings, 14 replies; 25+ messages in thread
From: Stephen Hemminger @ 2016-12-19 21:59 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

This set of patches generalize the ethernet device model sufficently
to support virtual, pci, and vmbus devices.

All this is based on the XP principal of only building what is
necessary and no more than that. The rationale is NOT to rework the
DPDK to have same level of bus and parent information as the Linux
device model. This would be unnecessary, fragile and unnecessarily OS
dependent.

Instead, this set of patches does the simple change of refactoring
so that the object relationship between ethernet (rte_eth_dev),
PCI (rte_pci_device) and generic (rte_device) is properly broken
apart.

It does make the simplifying assumption that the device driver knows
what type of bus it is on. For a future case where a device has to
be able to handle different bus families; then the device driver
can have multiple device drivers in one code base (like ixgbe PF/VF).


Jan Blunck (1):
  eal: define container_of macro

Stephen Hemminger (12):
  ethdev: increase length ethernet device internal name
  rte_device: make driver pointer const
  eal: introduce driver type
  pmd: remove useless reset of dev_info->dev_pci
  ethdev: make dev_info generic (not just PCI)
  e1000: localize mapping from eth_dev to pci
  ixgbe: localize mapping from eth_dev to pci_device
  i40e: localize mapping of eth_dev to pci
  virtio: localize mapping from rte_eth to pci
  broadcom: localize mapping from eth_dev to pci
  ethdev: change pci_dev to generic device
  hyperv: VMBUS support infrastucture

 app/test-pmd/config.c                       |  32 +++++++-
 app/test-pmd/testpmd.c                      |  11 ++-
 app/test-pmd/testpmd.h                      |  32 ++++----
 app/test/test_kni.c                         |  39 +++++++--
 app/test/virtual_pmd.c                      |   4 +-
 doc/guides/rel_notes/deprecation.rst        |   3 +
 doc/guides/rel_notes/release_17_02.rst      |  10 +--
 drivers/net/af_packet/rte_eth_af_packet.c   |   1 -
 drivers/net/bnxt/bnxt_ethdev.c              |  24 +++---
 drivers/net/bnxt/bnxt_ring.c                |  16 ++--
 drivers/net/bonding/rte_eth_bond_args.c     |  12 ++-
 drivers/net/bonding/rte_eth_bond_pmd.c      |   1 -
 drivers/net/cxgbe/cxgbe_ethdev.c            |   2 +-
 drivers/net/cxgbe/cxgbe_main.c              |   5 +-
 drivers/net/e1000/e1000_ethdev.h            |   2 +
 drivers/net/e1000/em_ethdev.c               |  50 +++++++-----
 drivers/net/e1000/igb_ethdev.c              |  99 ++++++++++++-----------
 drivers/net/e1000/igb_pf.c                  |   4 +-
 drivers/net/ena/ena_ethdev.c                |   2 +-
 drivers/net/enic/enic_ethdev.c              |   2 +-
 drivers/net/enic/enic_rxtx.c                |   2 -
 drivers/net/fm10k/fm10k_ethdev.c            |  90 +++++++++++++--------
 drivers/net/i40e/i40e_ethdev.c              |  77 +++++++++++-------
 drivers/net/i40e/i40e_ethdev.h              |   3 +
 drivers/net/i40e/i40e_ethdev_vf.c           |  59 ++++++++------
 drivers/net/ixgbe/ixgbe_ethdev.c            | 120 ++++++++++++++++------------
 drivers/net/ixgbe/ixgbe_ethdev.h            |   3 +
 drivers/net/ixgbe/ixgbe_pf.c                |   4 +-
 drivers/net/null/rte_eth_null.c             |   1 -
 drivers/net/pcap/rte_eth_pcap.c             |   1 -
 drivers/net/qede/qede_ethdev.c              |  24 +++---
 drivers/net/qede/qede_ethdev.h              |   4 +
 drivers/net/ring/rte_eth_ring.c             |   1 -
 drivers/net/virtio/virtio_ethdev.c          |  95 +++++++++++++++-------
 drivers/net/virtio/virtio_user_ethdev.c     |   2 +-
 drivers/net/vmxnet3/vmxnet3_ethdev.c        |   3 +-
 drivers/net/xenvirt/rte_eth_xenvirt.c       |   1 -
 lib/librte_eal/common/Makefile              |   2 +-
 lib/librte_eal/common/eal_common_devargs.c  |   7 ++
 lib/librte_eal/common/eal_common_options.c  |  38 +++++++++
 lib/librte_eal/common/eal_internal_cfg.h    |   3 +-
 lib/librte_eal/common/eal_options.h         |   6 ++
 lib/librte_eal/common/eal_private.h         |   5 ++
 lib/librte_eal/common/include/rte_common.h  |  20 +++++
 lib/librte_eal/common/include/rte_dev.h     |  17 +++-
 lib/librte_eal/common/include/rte_devargs.h |   8 ++
 lib/librte_eal/common/include/rte_pci.h     |   1 +
 lib/librte_eal/common/include/rte_vdev.h    |   1 +
 lib/librte_eal/linuxapp/eal/Makefile        |   6 ++
 lib/librte_eal/linuxapp/eal/eal.c           |  11 +++
 lib/librte_ether/rte_ethdev.c               | 114 ++++++++++++++++++++++++--
 lib/librte_ether/rte_ethdev.h               |  38 +++++++--
 mk/rte.app.mk                               |   1 +
 53 files changed, 776 insertions(+), 343 deletions(-)

-- 
2.11.0

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

end of thread, other threads:[~2016-12-20 17:16 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-19 21:59 [dpdk-dev] [RFC v2 00/13] Generalize rte_eth_dev model Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 01/13] ethdev: increase length ethernet device internal name Stephen Hemminger
2016-12-20  6:53   ` Shreyansh Jain
2016-12-20 17:14     ` Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 02/13] rte_device: make driver pointer const Stephen Hemminger
2016-12-20 11:14   ` Jan Blunck
2016-12-19 21:59 ` [dpdk-dev] [PATCH 03/13] eal: define container_of macro Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 04/13] eal: introduce driver type Stephen Hemminger
2016-12-20  7:16   ` Shreyansh Jain
2016-12-20 17:16     ` Stephen Hemminger
2016-12-20 13:00   ` Jan Blunck
2016-12-20 17:09     ` Stephen Hemminger
2016-12-20 13:04   ` Ferruh Yigit
2016-12-19 21:59 ` [dpdk-dev] [PATCH 05/13] pmd: remove useless reset of dev_info->dev_pci Stephen Hemminger
2016-12-20 11:16   ` Jan Blunck
2016-12-19 21:59 ` [dpdk-dev] [PATCH 06/13] ethdev: make dev_info generic (not just PCI) Stephen Hemminger
2016-12-20 11:20   ` Jan Blunck
2016-12-19 21:59 ` [dpdk-dev] [PATCH 07/13] e1000: localize mapping from eth_dev to pci Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 08/13] ixgbe: localize mapping from eth_dev to pci_device Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 09/13] i40e: localize mapping of eth_dev to pci Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 10/13] virtio: localize mapping from rte_eth " Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 11/13] broadcom: localize mapping from eth_dev " Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 12/13] ethdev: change pci_dev to generic device Stephen Hemminger
2016-12-19 21:59 ` [dpdk-dev] [PATCH 13/13] hyperv: VMBUS support infrastucture Stephen Hemminger
2016-12-20 12:48 ` [dpdk-dev] [RFC v2 00/13] Generalize rte_eth_dev model Jan Blunck

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