DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v8 00/15] common linkstatus functions
@ 2018-01-26  2:01 Stephen Hemminger
  2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 01/15] eal: introduce atomic exchange operation Stephen Hemminger
                   ` (15 more replies)
  0 siblings, 16 replies; 24+ messages in thread
From: Stephen Hemminger @ 2018-01-26  2:01 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

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(-)

-- 
2.15.1

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-03-16 10:31 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-26  2:01 [dpdk-dev] [PATCH v8 00/15] common linkstatus functions Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 01/15] eal: introduce atomic exchange operation Stephen Hemminger
2018-01-26 17:14   ` Thomas Monjalon
2018-01-26 17:24     ` Bruce Richardson
2018-01-26 21:54       ` Stephen Hemminger
2018-01-29  9:51         ` Bruce Richardson
2018-01-26 17:59   ` Ananyev, Konstantin
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 02/15] ethdev: add linkstatus get/set helper functions Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 03/15] net/virtio: use eth_linkstatus_set Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 04/15] net/vmxnet3: use rte_eth_linkstatus_set Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 05/15] net/dpaa2: " Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 06/15] net/nfp: use rte_eth_linkstatus functions Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 07/15] net/e1000: use rte_eth_linkstatus helpers Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 08/15] net/ixgbe: use rte_eth_linkstatus functions Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 09/15] net/sfc: use new " Stephen Hemminger
2018-01-26  6:31   ` Andrew Rybchenko
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 10/15] net/i40e: use " Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 11/15] net/liquidio: use rte_eth_linkstatus_set Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 12/15] net/thunderx: " Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 13/15] net/szedata: use _rte_eth_linkstatus_set Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 14/15] net/octeontx: use rte_eth_linkstatus_set Stephen Hemminger
2018-01-26  2:01 ` [dpdk-dev] [PATCH v8 15/15] net/enic: " Stephen Hemminger
2018-03-15 17:38 ` [dpdk-dev] [PATCH v8 00/15] common linkstatus functions Ferruh Yigit
2018-03-16 10:31   ` Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).