[dpdk-dev] [PATCH v6 0/6] Fail-safe\ethdev: fix removal handling lack
Matan Azrad
matan at mellanox.com
Thu Jan 18 12:27:08 CET 2018
There is time between the physical removal of the device until sub-device PMDs get a RMV interrupt.
At this time DPDK PMDs and applications still don't know about the removal and may call sub-device control operation which should return an error.
This series adds new ethdev operation to check device removal, adds support for it in mlx PMDs, adjust ethdev APIs to return -EIO in case of removal and fixes the fail-safe bug of removal error report.
V2:
Remove ENODEV definition.
Remove checks from all mlx control commands.
Add new devop - "is_removed".
Implement it in mlx4 and mlx5.
Fix failsafe bug by the new devop.
V3:
Adjust ethdev APIs removal error report.
Change failsafe check to check eth_dev* return values.
Remove backporting of fail-safe patch.
V4:
Improve fail-safe internal API to adjust the actual error value as discussed.
Remove "Fixes" lines from fail-safe patch.
No changes in ethdev\mlx patches.
V5:
Rebase on top of master-net-mlx.
V6:
Move ethdev new API to be EXPERIMENTAL.
Matan Azrad (6):
ethdev: add devop to check removal status
net/mlx4: support a device removal check operation
net/mlx5: support a device removal check operation
ethdev: adjust APIs removal error report
ethdev: adjust flow APIs removal error report
net/failsafe: fix removed device handling
drivers/net/failsafe/failsafe_flow.c | 18 ++-
drivers/net/failsafe/failsafe_ops.c | 35 +++--
drivers/net/failsafe/failsafe_private.h | 11 ++
drivers/net/mlx4/mlx4.c | 1 +
drivers/net/mlx4/mlx4.h | 1 +
drivers/net/mlx4/mlx4_ethdev.c | 20 +++
drivers/net/mlx5/mlx5.c | 2 +
drivers/net/mlx5/mlx5.h | 1 +
drivers/net/mlx5/mlx5_ethdev.c | 20 +++
lib/librte_ether/rte_ethdev.c | 218 +++++++++++++++++++++-----------
lib/librte_ether/rte_ethdev.h | 71 ++++++++++-
lib/librte_ether/rte_ethdev_version.map | 1 +
lib/librte_ether/rte_flow.c | 34 ++++-
lib/librte_ether/rte_flow.h | 2 +
14 files changed, 335 insertions(+), 100 deletions(-)
--
1.8.3.1
More information about the dev
mailing list