[dpdk-dev] [PATCH v5 0/7] Port ownership and synchronization
Matan Azrad
matan at mellanox.com
Mon Jan 29 12:21:45 CET 2018
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
More information about the dev
mailing list