From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stephen@networkplumber.org>
Received: from mail-pg0-f66.google.com (mail-pg0-f66.google.com [74.125.83.66])
 by dpdk.org (Postfix) with ESMTP id 845F91B040
 for <dev@dpdk.org>; Mon,  8 Jan 2018 18:45:24 +0100 (CET)
Received: by mail-pg0-f66.google.com with SMTP id j4so6010256pgp.1
 for <dev@dpdk.org>; Mon, 08 Jan 2018 09:45:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=networkplumber-org.20150623.gappssmtp.com; s=20150623;
 h=from:to:cc:subject:date:message-id;
 bh=gPym4C0rm+NJkpli31eZCtybcWXOEbtxaxkK2cez9GY=;
 b=fMd285lw6bnGiPQVsgUbSBln9IyYVKOlqeJpccnoBBaBVNkUeFaZujLpgExi/FqzOC
 Kx3YIphqXI9oavdnDtbTiUzddSIptPZ1d+q4xpIKYOGZWNyPMy0gE/sZGiBDfDehl7oi
 kihrSP9Kcr5gXyS/W0KAE53iUkduS+I5gUZLClEb4m2RA2uRkS9OTex5DPTxUgtkOAW4
 kzFT+w5PxJcisH9m0ybYTPfkt4r5SFGLK62m1AtA6hW88h1t+wU1BeQhzZh+TTjUFKaY
 FWjl9TbQ08S315V4DMHytIsYSFo1rwgW0C/CZizYLZNb4t7mHLX7303O1gkhpul+//9E
 OaaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:date:message-id;
 bh=gPym4C0rm+NJkpli31eZCtybcWXOEbtxaxkK2cez9GY=;
 b=jR/gjUa0CNJne5y8tbbolXU0JA4SUyeSJdjZsvTg/aH1TCM/GGmuXQg1liN4ZyTgDS
 M8eADioWjD6unVcHLnbs50KDPg+xrU1V0wLx9XloXz6kPj0MJxc8CDkbGFS1W0trEbey
 phwKPCyb58gL5MTGmNr2DlCc7j2Jil5tTqpuxCQYbNNqXjyN+rRX3qE5XZx6FZlz42kb
 xqk9jpjGZ9Iqi86zaVN094il6jseuMO09v1htZ9kQXng9CnDt6r8FXlQtkJEELU9vnIi
 mUmoWBRIJD5RbwghVYPNp6FA/6EgKeF0XgfiFgyoPmD1L0bNL2alxDq2AXWy+eaW+CbL
 I39g==
X-Gm-Message-State: AKGB3mLNghHuZICcLFQnS07S/19yzqwSsbFkovxjfpwJBxnsYr/rUbj/
 pJWn6voGkVCQa43jVFtfs2n1OctNTUM=
X-Google-Smtp-Source: ACJfBovAeQoYZ+8WrFuizMS97pWYPNavHe03mVE+JUSIIIjpKBNeBQo3b6jyPXA4elKv62+rE+DAvw==
X-Received: by 10.98.247.9 with SMTP id h9mr11404449pfi.77.1515433522847;
 Mon, 08 Jan 2018 09:45:22 -0800 (PST)
Received: from xeon-e3.lan (204-195-18-133.wavecable.com. [204.195.18.133])
 by smtp.gmail.com with ESMTPSA id j14sm10933142pfh.94.2018.01.08.09.45.21
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 08 Jan 2018 09:45:21 -0800 (PST)
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon,  8 Jan 2018 09:44:59 -0800
Message-Id: <20180108174514.14688-1-stephen@networkplumber.org>
X-Mailer: git-send-email 2.15.1
Subject: [dpdk-dev] [PATCH v3 00/15] common ethdev linkstatus functions
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Jan 2018 17:45:24 -0000

While reviewing drivers, 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.

v3
 - align rte_linkstatus_get with rte_atomic64_read
 - virtio use ETH_SPEED_NUM_10G
 - add net/
v2 
 - function names changed
 - rebased to current master


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                   | 65 ++------------
 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                     | 44 ++--------
 drivers/net/i40e/i40e_ethdev_vf.c                  | 19 +----
 drivers/net/ixgbe/ixgbe_ethdev.c                   | 99 ++++------------------
 drivers/net/liquidio/lio_ethdev.c                  | 54 ++----------
 drivers/net/nfp/nfp_net.c                          | 75 ++--------------
 drivers/net/octeontx/octeontx_ethdev.c             | 16 +---
 drivers/net/sfc/sfc_ethdev.c                       | 27 ++----
 drivers/net/sfc/sfc_ev.c                           | 23 +----
 drivers/net/szedata2/rte_eth_szedata2.c            | 20 ++---
 drivers/net/thunderx/nicvf_ethdev.c                | 17 +---
 drivers/net/virtio/virtio_ethdev.c                 | 64 +++-----------
 drivers/net/vmxnet3/vmxnet3_ethdev.c               | 85 ++++---------------
 .../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                      | 36 ++++++++
 lib/librte_ether/rte_ethdev.h                      | 28 ++++++
 23 files changed, 303 insertions(+), 657 deletions(-)

-- 
2.15.1