Skip to content

common linkstatus functions

Stephen Hemminger dpdk-dev 6 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest15 patches 8 repliesIn review
  2. v715 patches 3 repliesSuperseded
  3. v515 patches 8 repliesSuperseded
Earlier versions · 3
VersionPostedPatchesRepliesStatus
v415 patches0 repliesSuperseded
v315 patches11 repliesSuperseded
v215 patches6 repliesSuperseded

Patches in v8 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/15eal: introduce atomic exchange operationlib/librte_eal/common/include/arch/ppc_64/rte_atomic.h lib/librte_eal/common/include/arch/x86/rte_atomic.h lib/librte_eal/common/include/arch/x86/rte_atomic_32.h +2 more+146 -15 replies
2/15ethdev: add linkstatus get/set helper functionslib/librte_ether/rte_ethdev.c lib/librte_ether/rte_ethdev_driver.h+67 -180 replies
3/15net/virtio: use eth_linkstatus_setdrivers/net/virtio/virtio_ethdev.c+5 -470 replies
4/15net/vmxnet3: use rte_eth_linkstatus_setdrivers/net/vmxnet3/vmxnet3_ethdev.c+3 -600 replies
5/15net/dpaa2: use rte_eth_linkstatus_setdrivers/net/dpaa2/dpaa2_ethdev.c+10 -680 replies
6/15net/nfp: use rte_eth_linkstatus functionsdrivers/net/nfp/nfp_net.c+7 -650 replies
7/15net/e1000: use rte_eth_linkstatus helpersdrivers/net/e1000/em_ethdev.c drivers/net/e1000/igb_ethdev.c+10 -1310 replies
8/15net/ixgbe: use rte_eth_linkstatus functionsdrivers/net/ixgbe/ixgbe_ethdev.c+13 -770 replies
9/15net/sfc: use new rte_eth_linkstatus functionsdrivers/net/sfc/sfc_ethdev.c drivers/net/sfc/sfc_ev.c+7 -371 reply
10/15net/i40e: use rte_eth_linkstatus functionsdrivers/net/i40e/i40e_ethdev.c drivers/net/i40e/i40e_ethdev_vf.c+9 -560 replies
11/15net/liquidio: use rte_eth_linkstatus_setdrivers/net/liquidio/lio_ethdev.c+4 -400 replies
12/15net/thunderx: use rte_eth_linkstatus_setdrivers/net/thunderx/nicvf_ethdev.c+18 -270 replies
13/15net/szedata: use _rte_eth_linkstatus_setdrivers/net/szedata2/rte_eth_szedata2.c+4 -70 replies
14/15net/octeontx: use rte_eth_linkstatus_setdrivers/net/octeontx/octeontx_ethdev.c+1 -150 replies
15/15net/enic: use rte_eth_linkstatus_setdrivers/net/enic/enic_ethdev.c drivers/net/enic/enic_main.c+9 -120 replies

Reviews trailers per patch

1 of 15 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchShijith ThottonKonstantin AnanyevFerruh Yigit
SeriesR-b
1/15A-b
2/15
3/15
4/15
5/15
6/15
7/15
8/15
9/15
10/15
11/15T-b
12/15
13/15
14/15
15/15

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v8 thread

Cover letter [PATCH v8 00/15] common linkstatus functions

While writing hyper-v driver, noticed a lot of unnecessary duplication of code in drivers for handling the eth_dev link status information. While consolidating this, it also became obvious that some drivers behave differently for no good reason.

It also was a good chance to introduce atomic exchange primitives in EAL because there are other places using cmpset where not necessary (such as bonding).

Mostly only compile tested only, don't have all of the hardware available (except ixgbe and virtio) to test.

v8
- fix typo in 32bit exchange
- fix build of dpaa2
- go back to same return value as original code
- reduce number of lines changed

v7
- add exchange functions for PPC64
- move linkstatus helpers to rte_ethdev_driver
- rebase to 18.02

Stephen Hemminger (15):
eal: introduce atomic exchange operation
ethdev: add linkstatus get/set helper functions
net/virtio: use eth_linkstatus_set
net/vmxnet3: use rte_eth_linkstatus_set
net/dpaa2: use rte_eth_linkstatus_set
net/nfp: use rte_eth_linkstatus functions
net/e1000: use rte_eth_linkstatus helpers
net/ixgbe: use rte_eth_linkstatus functions
net/sfc: use new rte_eth_linkstatus functions
net/i40e: use rte_eth_linkstatus functions
net/liquidio: use rte_eth_linkstatus_set
net/thunderx: use rte_eth_linkstatus_set
net/szedata: use _rte_eth_linkstatus_set
net/octeontx: use rte_eth_linkstatus_set
net/enic: use rte_eth_linkstatus_set

 drivers/net/dpaa2/dpaa2_ethdev.c                   | 78 +++----------------
 drivers/net/e1000/em_ethdev.c                      | 70 ++---------------
 drivers/net/e1000/igb_ethdev.c                     | 71 ++---------------
 drivers/net/enic/enic_ethdev.c                     |  5 +-
 drivers/net/enic/enic_main.c                       | 16 ++--
 drivers/net/i40e/i40e_ethdev.c                     | 46 ++---------
 drivers/net/i40e/i40e_ethdev_vf.c                  | 19 +----
 drivers/net/ixgbe/ixgbe_ethdev.c                   | 90 ++++------------------
 drivers/net/liquidio/lio_ethdev.c                  | 44 +----------
 drivers/net/nfp/nfp_net.c                          | 72 ++---------------
 drivers/net/octeontx/octeontx_ethdev.c             | 16 +---
 drivers/net/sfc/sfc_ethdev.c                       | 24 ++----
 drivers/net/sfc/sfc_ev.c                           | 20 +----
 drivers/net/szedata2/rte_eth_szedata2.c            | 11 +--
 drivers/net/thunderx/nicvf_ethdev.c                | 45 +++++------
 drivers/net/virtio/virtio_ethdev.c                 | 52 ++-----------
 drivers/net/vmxnet3/vmxnet3_ethdev.c               | 63 +--------------
 .../common/include/arch/ppc_64/rte_atomic.h        | 21 ++++-
 .../common/include/arch/x86/rte_atomic.h           | 24 ++++++
 .../common/include/arch/x86/rte_atomic_32.h        | 12 +++
 .../common/include/arch/x86/rte_atomic_64.h        | 12 +++
 lib/librte_eal/common/include/generic/rte_atomic.h | 78 +++++++++++++++++++
 lib/librte_ether/rte_ethdev.c                      | 22 +-----
 lib/librte_ether/rte_ethdev_driver.h               | 63 +++++++++++++++
 24 files changed, 313 insertions(+), 661 deletions(-)
Signature · 1 line
2.15.1