Thread (212 messages) 212 messages, 9 authors, 2018-04-25

Re: [PATCH v5 0/7] Port ownership and synchronization

From: Matan Azrad <hidden>
Date: 2018-01-29 11:21:47

Hi all

Since there is not agreement for testpmd to be ownership aware by using the new ownership mechanism,
I think we can drop testpmd patch for now(app/testpmd: adjust ethdev port ownership).

Maybe we can add example application to use this API in future.

Thanks!

From: Matan Azrad
Add ownership mechanism to DPDK Ethernet devices to avoid multiple
management of a device by different DPDK entities.
The port ownership mechanism is a good point to redefine the
synchronization rules in ethdev:

	1. The port allocation and port release synchronization will be
managed by ethdev.
	2. The port usage synchronization will be managed by the port
owner.
	3. The port ownership synchronization will be managed by ethdev.
	4. DPDK entity which want to use a port safely must take ownership
before.


V2:
Synchronize ethdev port creation.
Synchronize port ownership mechanism.
Rename owner remove API to rte_eth_dev_owner_unset.
Remove "ethdev: free a port by a dedicated API" patch - passed to another
series.
Add "ethdev: fix port data reset timing" patch.
Cahnge owner get API to return int value and to pass copy of the owner
structure.
Adjust testpmd to the improved owner get API.
Adjust documentations.

V3:
Change RTE_ETH_FOREACH_DEV iterator to skip owned ports(Gaetan
suggestion).
Prevent goto in set\unset APIs by adding internal API - this also adds reuse of
code(Konstantin suggestion).
Group all the shared processes variables in one struct to allow easy allocation
of it(Konstantin suggestion).
Take owner name truncation as warning and not as error(Konstantin
suggestion).
Mark the new APIs as EXPERIMENTAL.
Rebase on top of master_net_mlx.
Rebase on top of "[PATCH v6 0/6] Fail-safe\ethdev: fix removal handling lack"
series.
Rebase on top of "[PATCH v5 0/8] Introduce virtual driver for Hyper-V/Azure
platforms" .
Add "ethdev: fix used portid allocation" patch suggested y Konstantin.

v4:
Share => shared in ethdev patches(Thomas suggestion).
Rephase some code comments(Thomas suggestion).
Fix compilation issue caused by wrong rebase with "fix used portid allocation"
patch.
Add assert check for the correct port state to above fix patch.

V5:
Use defferent print message type as Ferruh suggested.
Fix the name parameter description in set\unset APIs(Ferruh suggestion).
Rebase on top of 18.02-rc1.
Fix issue: ownership API must check that the shared data was allocated
before using the shared ownership lock(relevant when no port was created).

Matan Azrad (7):
  ethdev: fix port data reset timing
  ethdev: fix used portid allocation
  ethdev: add port ownership
  ethdev: synchronize port allocation
  net/failsafe: free an eth port by a dedicated API
  net/failsafe: use ownership mechanism to own ports
  app/testpmd: adjust ethdev port ownership

 app/test-pmd/cmdline.c                  |  89 +++++------
 app/test-pmd/cmdline_flow.c             |   2 +-
 app/test-pmd/config.c                   |  37 ++---
 app/test-pmd/parameters.c               |   4 +-
 app/test-pmd/testpmd.c                  |  63 +++++---
 app/test-pmd/testpmd.h                  |   3 +
 doc/guides/prog_guide/poll_mode_drv.rst |  14 +-
 drivers/net/failsafe/failsafe.c         |   7 +
 drivers/net/failsafe/failsafe_eal.c     |  16 ++
 drivers/net/failsafe/failsafe_ether.c   |   2 +-
 drivers/net/failsafe/failsafe_private.h |   2 +
 lib/librte_ether/rte_ethdev.c           | 267
+++++++++++++++++++++++++++-----
 lib/librte_ether/rte_ethdev.h           | 115 +++++++++++++-
 lib/librte_ether/rte_ethdev_core.h      |   2 +
 lib/librte_ether/rte_ethdev_version.map |   6 +
 15 files changed, 486 insertions(+), 143 deletions(-)

--
1.8.3.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help