[00/20] cleanup ethdev close operation
mbox series

Message ID 20200913220711.3768597-1-thomas@monjalon.net
Headers show
Series
  • cleanup ethdev close operation
Related show

Message

Thomas Monjalon Sept. 13, 2020, 10:06 p.m. UTC
This is the end of a process started two years ago,
to have a close which reliably releases an ethdev port
without the need of removing the device (which can have more ports).

Unfortunately, some drivers might be broken because did not follow
the migration recommendations. We cannot wait more,
this should be merged before the 20.11-rc1 release.


Steve Yang (1):
  net/iavf: release port upon close

Thomas Monjalon (18):
  ethdev: reset device and interrupt pointers on release
  ethdev: allow drivers to return error on close
  net/af_packet: release port upon close
  net/atlantic: release port upon close
  net/axgbe: release port upon close
  net/bonding: release port upon close
  net/failsafe: release port upon close
  net/mlx4: release port upon close
  net/null: release port upon close
  net/octeontx: release port upon close
  net/pcap: release port upon close
  net/ring: release port upon close
  net/softnic: release port upon close
  ethdev: remove old close behaviour
  drivers/net: accept removing device without any port
  drivers/net: remove redundant MAC addresses freeing
  app/testpmd: reset port status on close notification
  app/testpmd: align behaviour of multi-port detach

Yunjian Wang (1):
  net/tap: release port upon close

 MAINTAINERS                               | 22 ++++----
 app/test-pmd/config.c                     |  7 ++-
 app/test-pmd/testpmd.c                    | 56 +++++++------------
 app/test/virtual_pmd.c                    |  6 ++-
 doc/guides/rel_notes/deprecation.rst      |  6 ---
 drivers/net/af_packet/rte_eth_af_packet.c | 58 ++++++++++----------
 drivers/net/af_xdp/rte_eth_af_xdp.c       |  6 +--
 drivers/net/ark/ark_ethdev.c              | 11 ++--
 drivers/net/atlantic/atl_ethdev.c         | 66 +++++++++--------------
 drivers/net/avp/avp_ethdev.c              |  7 ++-
 drivers/net/axgbe/axgbe_ethdev.c          | 14 ++---
 drivers/net/bnx2x/bnx2x_ethdev.c          |  4 +-
 drivers/net/bnxt/bnxt_ethdev.c            |  9 ++--
 drivers/net/bnxt/bnxt_reps.c              |  7 +--
 drivers/net/bnxt/bnxt_reps.h              |  2 +-
 drivers/net/bonding/eth_bond_private.h    |  2 +-
 drivers/net/bonding/rte_eth_bond_pmd.c    | 37 +++++++------
 drivers/net/cxgbe/cxgbe_ethdev.c          |  6 ++-
 drivers/net/cxgbe/cxgbe_pfvf.h            |  2 +-
 drivers/net/dpaa/dpaa_ethdev.c            |  4 +-
 drivers/net/dpaa2/dpaa2_ethdev.c          |  6 ++-
 drivers/net/e1000/em_ethdev.c             | 11 ++--
 drivers/net/e1000/igb_ethdev.c            | 22 +++-----
 drivers/net/ena/ena_ethdev.c              | 12 ++---
 drivers/net/enetc/enetc_ethdev.c          |  4 +-
 drivers/net/enic/enic_ethdev.c            |  6 +--
 drivers/net/failsafe/failsafe.c           | 24 ++-------
 drivers/net/failsafe/failsafe_ops.c       | 60 +++++++++++++--------
 drivers/net/failsafe/failsafe_private.h   |  1 +
 drivers/net/fm10k/fm10k_ethdev.c          |  9 ++--
 drivers/net/hinic/hinic_pmd_ethdev.c      | 15 ++----
 drivers/net/hns3/hns3_ethdev.c            | 11 ++--
 drivers/net/hns3/hns3_ethdev_vf.c         | 11 ++--
 drivers/net/i40e/i40e_ethdev.c            | 10 ++--
 drivers/net/i40e/i40e_ethdev_vf.c         | 10 ++--
 drivers/net/iavf/iavf_ethdev.c            | 44 ++++++++-------
 drivers/net/ice/ice_dcf_ethdev.c          |  8 +--
 drivers/net/ice/ice_ethdev.c              | 14 ++---
 drivers/net/igc/igc_ethdev.c              | 11 ++--
 drivers/net/ionic/ionic_ethdev.c          | 10 ++--
 drivers/net/ipn3ke/ipn3ke_ethdev.c        |  6 +--
 drivers/net/ipn3ke/ipn3ke_representor.c   |  4 +-
 drivers/net/ixgbe/ixgbe_ethdev.c          | 21 +++-----
 drivers/net/kni/rte_eth_kni.c             | 22 ++++----
 drivers/net/liquidio/lio_ethdev.c         |  4 +-
 drivers/net/memif/rte_eth_memif.c         |  7 ++-
 drivers/net/mlx4/mlx4.c                   |  5 +-
 drivers/net/mlx5/linux/mlx5_os.c          |  2 -
 drivers/net/mlx5/mlx5.c                   |  9 ++--
 drivers/net/mlx5/mlx5.h                   |  2 +-
 drivers/net/mvneta/mvneta_ethdev.c        |  7 ++-
 drivers/net/mvpp2/mrvl_ethdev.c           |  7 ++-
 drivers/net/netvsc/hn_ethdev.c            |  9 ++--
 drivers/net/nfb/nfb_ethdev.c              |  8 +--
 drivers/net/nfp/nfp_net.c                 |  8 ++-
 drivers/net/null/rte_eth_null.c           | 23 +++++---
 drivers/net/octeontx/octeontx_ethdev.c    | 14 ++---
 drivers/net/octeontx2/otx2_ethdev.c       |  8 +--
 drivers/net/pcap/rte_eth_pcap.c           | 31 ++++++-----
 drivers/net/pfe/pfe_ethdev.c              | 14 ++---
 drivers/net/qede/qede_ethdev.c            |  4 +-
 drivers/net/ring/rte_eth_ring.c           | 50 ++++++++++-------
 drivers/net/sfc/sfc_ethdev.c              |  8 +--
 drivers/net/softnic/rte_eth_softnic.c     | 64 +++++++++++-----------
 drivers/net/szedata2/rte_eth_szedata2.c   | 20 +++----
 drivers/net/tap/rte_eth_tap.c             | 48 ++++++++++-------
 drivers/net/thunderx/nicvf_ethdev.c       |  4 +-
 drivers/net/vhost/rte_eth_vhost.c         |  8 +--
 drivers/net/virtio/virtio_ethdev.c        | 11 ++--
 drivers/net/vmxnet3/vmxnet3_ethdev.c      |  9 ++--
 lib/librte_ethdev/rte_ethdev.c            | 19 ++-----
 lib/librte_ethdev/rte_ethdev.h            |  8 +--
 lib/librte_ethdev/rte_ethdev_core.h       |  2 +-
 lib/librte_ethdev/rte_ethdev_pci.h        | 14 +----
 74 files changed, 503 insertions(+), 608 deletions(-)

Comments

Ferruh Yigit Sept. 23, 2020, 4:44 p.m. UTC | #1
On 9/13/2020 11:06 PM, Thomas Monjalon wrote:
> This is the end of a process started two years ago,
> to have a close which reliably releases an ethdev port
> without the need of removing the device (which can have more ports).
> 
> Unfortunately, some drivers might be broken because did not follow
> the migration recommendations. We cannot wait more,
> this should be merged before the 20.11-rc1 release.
> 
> 
> Steve Yang (1):
>    net/iavf: release port upon close
> 
> Thomas Monjalon (18):
>    ethdev: reset device and interrupt pointers on release
>    ethdev: allow drivers to return error on close
>    net/af_packet: release port upon close
>    net/atlantic: release port upon close
>    net/axgbe: release port upon close
>    net/bonding: release port upon close
>    net/failsafe: release port upon close
>    net/mlx4: release port upon close
>    net/null: release port upon close
>    net/octeontx: release port upon close
>    net/pcap: release port upon close
>    net/ring: release port upon close
>    net/softnic: release port upon close
>    ethdev: remove old close behaviour
>    drivers/net: accept removing device without any port
>    drivers/net: remove redundant MAC addresses freeing
>    app/testpmd: reset port status on close notification
>    app/testpmd: align behaviour of multi-port detach
> 
> Yunjian Wang (1):
>    net/tap: release port upon close
> 

Hi Thomas,

this requires rebase, specially cxgbe & enic has relevant code changes 
after the set.