[dpdk-dev] [PATCH 0/4] clarify eth_dev state management
Gaetan Rivet
gaetan.rivet at 6wind.com
Fri Mar 3 16:40:09 CET 2017
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
More information about the dev
mailing list