This series adds support for proactive device reset
(RTE_ETH_ERROR_HANDLE_MODE_PROACTIVE) to the GVE driver, replacing the
existing passive reset implementation. When the device requests a reset,
the driver now automatically recovers the control plane and recreates RX
and TX queues without requiring the application to manually reconfigure
the port.

To support automatic recovery safely while traffic is running, this
series:
- Fixes a pre-existing leak of the flow subsystem on device init
  failure.
- Saves RX and TX queue setup parameters and versions queue memzone
  names by reset generation so queues can be recreated before old queue
  memory is freed.
- Defers freeing retired queue memory ("zombie" queues) until after a
  grace period so concurrent datapath threads can safely drain after
  packet burst functions are redirected to dummy handlers.
- Splits device resource setup and teardown into host memory allocation
  and hardware configuration so host DMA memory can be kept across
  resets and re-registered with the device.
- Adds a reset mutex and moves device status polling off the shared DPDK
  alarm/interrupt thread onto a dedicated control thread.
- Implements proactive recovery and emits the standard DPDK recovery
  lifecycle events (RTE_ETH_EVENT_ERR_RECOVERING,
  RTE_ETH_EVENT_RECOVERY_SUCCESS, and RTE_ETH_EVENT_RECOVERY_FAILED).

Jasper Tran O'Leary (8):
  net/gve: free flow subsystem on dev init failure
  net/gve: snapshot queue configurations
  net/gve: add deferred queue memory reclamation
  net/gve: separate device resource alloc and config
  net/gve: add dedicated mutex for device reset
  net/gve: add check for device reset to AQ ctrl ops
  net/gve: implement proactive device reset
  net/gve: remove unused device reset parameter

Joshua Washington (1):
  net/gve: move dev status poller to its own thread

 doc/guides/nics/gve.rst                |  67 +-
 doc/guides/rel_notes/release_26_11.rst |   5 +
 drivers/net/gve/base/gve.h             |   1 +
 drivers/net/gve/gve_ethdev.c           | 775 ++++++++++++++------
 drivers/net/gve/gve_ethdev.h           |  87 ++-
 drivers/net/gve/gve_rx.c               |  36 +-
 drivers/net/gve/gve_rx_dqo.c           |  36 +-
 drivers/net/gve/gve_tx.c               |  32 +-
 drivers/net/gve/gve_tx_dqo.c           |  35 +-
 9 files changed, 813 insertions(+), 261 deletions(-)

-- 
2.56.0.307.g5fe7bd680c-goog

Reply via email to