Skip to content

add device removal event

Gaetan Rivet dpdk-dev 2 versions – Applied

Status from this message: Applied, thanks

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest5 patches 9 repliesApplied
  2. v15 patches 1 replySuperseded

Changes in v2 from the cover letter

* integrated the series with the new PCI rte_bus implementation.

Patches in v2 Applied

#Subject and filesSizeRepliesApplied
1/5ethdev: introduce device removal eventdoc/guides/nics/features/default.ini doc/guides/prog_guide/env_abstraction_layer.rst lib/librte_eal/common/include/rte_pci.h +3 more+38 -85 replies
2/5net/mlx4: device removal event supportdoc/guides/nics/features/mlx4.ini drivers/net/mlx4/mlx4.c drivers/net/mlx4/mlx4.h+224 -360 replies
3/5app/testpmd: generic event handlerapp/test-pmd/testpmd.c+47 -00 replies
4/5app/testpmd: request link status interruptapp/test-pmd/parameters.c app/test-pmd/testpmd.c app/test-pmd/testpmd.h+18 -016 replies
5/5app/testpmd: request device removal interruptapp/test-pmd/parameters.c app/test-pmd/testpmd.c app/test-pmd/testpmd.h+48 -00 replies

Reviews trailers per patch

1 of 5 patches has a Reviewed-by or Acked-by.

PatchJohn McNamara
1/5
2/5
3/5
4/5A-b A-b A-b A-b
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/5] add device removal event

This new event represents the sudden removal of a device from its bus. The underlying resources exposed by the bus are expected not to be available anymore. The application should thus be able to react and possibly clean up related resources that it reserved for the removed device.

This event is different from the current hotplug API available in the DPDK for two reasons:

1. It is a reactive design: the application reacts to a device that has been removed instead of removing a device from its pool.

2. The event itself is going further than the current detaching of a device from a DPDK application. If the bus is a hardware one, it is expected of the underlying resources to not be available anymore.

This series adds a new event type to ethdev and implements it in mlx4. Testpmd is also updated to report all asynchronous ethdev events including this one for testing purposes and as a practical usage example.

This series depends on the series titled
[PATCH 1/2] net/mlx4: split the definitions to the header file

v1 --> v2:
* integrated the series with the new PCI rte_bus implementation.

I planned on working out a more generic implementation of the RMV event for the v17.05, however while writing it I found that I had to evolve the support of interrupts in the PCI rte_bus, which did not seem wise at this point of the release cycle.

I consider that this event should be generalized along the LSC event, going from pure PCI events to generic rte_bus events, given that they can be relevant to other busses (vdev at least). I would reserve this evolution for future release however, once a real discussion has taken place.

Gaetan Rivet (5):
ethdev: introduce device removal event
net/mlx4: device removal event support
app/testpmd: generic event handler
app/testpmd: request link status interrupt
app/testpmd: request device removal interrupt

 app/test-pmd/parameters.c                       |   8 +
 app/test-pmd/testpmd.c                          | 103 ++++++++++
 app/test-pmd/testpmd.h                          |   2 +
 doc/guides/nics/features/default.ini            |   1 +
 doc/guides/nics/features/mlx4.ini               |   1 +
 doc/guides/prog_guide/env_abstraction_layer.rst |  21 +-
 drivers/net/mlx4/mlx4.c                         | 258 ++++++++++++++++++++----
 drivers/net/mlx4/mlx4.h                         |   1 +
 lib/librte_eal/common/include/rte_pci.h         |   2 +
 lib/librte_ether/rte_ethdev.c                   |  11 +-
 lib/librte_ether/rte_ethdev.h                   |   9 +-
 lib/librte_ether/rte_ethdev_pci.h               |   2 +
 12 files changed, 375 insertions(+), 44 deletions(-)
Signature · 1 line
2.1.4