DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/4] clarify eth_dev state management
@ 2017-03-03 15:40 Gaetan Rivet
  2017-03-03 15:40 ` [dpdk-dev] [PATCH 1/4] ethdev: expose device states Gaetan Rivet
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Gaetan Rivet @ 2017-03-03 15:40 UTC (permalink / raw)
  To: dev; +Cc: Thomas Monjalon, Jingjing Wu

1. The hotplug API currently available in DPDK introduces the notion of
   device states (DEV_DETACHED, DEV_ATTACHED). These states are implicit
   and internal to the ethdev layer.

2. Device enumeration and access is done directly, without regard to the
   underlying state of a device. Applications are currently expected to cycle
   through the static rte_eth_devices array. Those using the hotplug API
   (rte_eth_dev_attach(), rte_eth_dev_detach()), are thus expected to deal
   themselves with possible discrepancies internal to the ethdev layer,
   i.e. avoid detached devices if necessary, without the state of the devices
   having been explicitly defined or exposed.

3. The hotplug API itself is not complete and cannot be used without
   introducing some bugs. Detaching a device will introduce inconsistencies in
   the device count, as explained in the related API.
   No function is exposed in the ethdev layer to permit applications to deal
   with it.

This series addresses these issues so that:

1. Applications are not expected to manage the states of their devices, those
   should be kept internal to the ethdev layer.

2. The hotplug API is cleaner, with specific operations from the ethdev layer
   to be used if necessary.

3. Applications that are not interested in hotplug functionality are not concerned
   and do not require any change.

Gaetan Rivet (4):
  ethdev: expose device states
  ethdev: add device iterator
  ethdev: count devices consistently
  app/testpmd: use ethdev iterator to list devices

 app/test-pmd/cmdline.c        | 31 ++++++++++++++---------------
 app/test-pmd/cmdline_flow.c   |  2 +-
 app/test-pmd/config.c         | 12 +++++------
 app/test-pmd/parameters.c     |  4 ++--
 app/test-pmd/testpmd.c        | 44 +++++++++++------------------------------
 app/test-pmd/testpmd.h        |  9 ---------
 lib/librte_ether/rte_ethdev.c | 46 +++++++++++++++++++++++++------------------
 lib/librte_ether/rte_ethdev.h | 37 ++++++++++++++++++++++++++++++----
 8 files changed, 95 insertions(+), 90 deletions(-)

-- 
2.1.4

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

end of thread, other threads:[~2017-04-05 20:47 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-03 15:40 [dpdk-dev] [PATCH 0/4] clarify eth_dev state management Gaetan Rivet
2017-03-03 15:40 ` [dpdk-dev] [PATCH 1/4] ethdev: expose device states Gaetan Rivet
2017-03-03 15:40 ` [dpdk-dev] [PATCH 2/4] ethdev: add device iterator Gaetan Rivet
2017-03-03 15:40 ` [dpdk-dev] [PATCH 3/4] ethdev: count devices consistently Gaetan Rivet
2017-03-30 19:26   ` Thomas Monjalon
2017-03-31  9:13     ` Gaëtan Rivet
2017-03-03 15:40 ` [dpdk-dev] [PATCH 4/4] app/testpmd: use ethdev iterator to list devices Gaetan Rivet
2017-03-31 12:04 ` [dpdk-dev] [PATCH v2 0/3] clarify eth_dev state management Gaetan Rivet
2017-03-31 12:04   ` [dpdk-dev] [PATCH v2 1/3] ethdev: expose device states Gaetan Rivet
2017-03-31 12:04   ` [dpdk-dev] [PATCH v2 2/3] ethdev: add device iterator Gaetan Rivet
2017-04-05 20:42     ` Thomas Monjalon
2017-03-31 12:04   ` [dpdk-dev] [PATCH v2 3/3] app/testpmd: use ethdev iterator to list devices Gaetan Rivet
2017-04-05 20:46   ` [dpdk-dev] [PATCH v2 0/3] clarify eth_dev state management Thomas Monjalon

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