From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stephen@networkplumber.org>
Received: from mail-pg0-f44.google.com (mail-pg0-f44.google.com [74.125.83.44])
 by dpdk.org (Postfix) with ESMTP id E610FA499
 for <dev@dpdk.org>; Tue, 23 Jan 2018 00:55:02 +0100 (CET)
Received: by mail-pg0-f44.google.com with SMTP id m20so8342579pgc.11
 for <dev@dpdk.org>; Mon, 22 Jan 2018 15:55:02 -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=lK9SlcOaDKehmS/AXwVK2gNKg70wksIGt2d0ZYKK0fo=;
 b=RJ5un4PaDLT6uz012zQ6oDPldmhHHA4HQ5PisqGLyFaBiQ9dpnBn0voJSibKnZDrZc
 gp5TMYrUAYLt0lcsaXCWrIYr4RlMHG2uFA6b3ip2ZZf4auC0MicQ3H0C+krAKsBWDdMJ
 zWkOvk7DXnY34KNlaMepG8Ixx3zJmWMlNNmtCcpUpvaffaFsY02KmAu2dXwuGF0T9Yb7
 8qB7BGbgIQiVK+0xrkB2dWUiDSGyMDmqWLM92JTb7m1rq8/V6V2JvOFu9/+8nEuRpNnc
 Acxct7cBrnxfM9vm19wHu2K0UyVT8GmujVKqndjz458SzQXEGag1d2Z/4OhfRfPVCVbN
 E48Q==
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=lK9SlcOaDKehmS/AXwVK2gNKg70wksIGt2d0ZYKK0fo=;
 b=aoX8Z9Go9k5ZqfIMRXQs4U2ZB37FP8UmmW7dj4O1eN+hoO6hVq4YHsitd9A6vyQozN
 zAVm8niGN69znJsAYGYyBNHIUgrpTzZ0CE6mccAt/cX9i9+R4u6S71kvNyigEc1gvH78
 KJXPTrrsvcGG51ZsL+qNxUHuYK+FiMDXwtdm7SzlXxcM83eSbXc5VNHlJfYO4ewbBna8
 NLFxTfRxUkK+GfqYTb5qUqsjBA1BlJm5Lr+YgKi98Rpe2H8jrfqA4xaBTMzWXLsTZrpC
 JxWI6BLmhvSgu6PD8qdtIeitgaWrDWj/FGltm5HV8SQVSqrmWs7GhlWGEN6pkcaplzqQ
 CH1Q==
X-Gm-Message-State: AKwxytcffMc778ERU/mx4TxI+7mXiIkBP/qeS+htThNGF6WA6Tc78oWa
 UcNJqRlZFTBaHejTbK2xpsTKHI69TZk=
X-Google-Smtp-Source: AH8x2277UOg3AZ0nYkdzy8dZPFg203k+wz2J1uCmHUEVIwrR6ubL75IhgcozXYzRV+CRD7578fmXqQ==
X-Received: by 10.99.38.67 with SMTP id m64mr670188pgm.2.1516665301736;
 Mon, 22 Jan 2018 15:55:01 -0800 (PST)
Received: from xeon-e3.lan (204-195-18-133.wavecable.com. [204.195.18.133])
 by smtp.gmail.com with ESMTPSA id a24sm1623825pff.160.2018.01.22.15.55.00
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 22 Jan 2018 15:55:00 -0800 (PST)
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 22 Jan 2018 15:54:43 -0800
Message-Id: <20180122235458.28562-1-stephen@networkplumber.org>
X-Mailer: git-send-email 2.15.1
Subject: [dpdk-dev] [PATCH v7 00/15] common 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, 22 Jan 2018 23:55:03 -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.


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                   | 75 ++---------------
 drivers/net/e1000/em_ethdev.c                      | 69 ++--------------
 drivers/net/e1000/igb_ethdev.c                     | 70 ++--------------
 drivers/net/enic/enic_ethdev.c                     |  5 +-
 drivers/net/enic/enic_main.c                       | 17 ++--
 drivers/net/i40e/i40e_ethdev.c                     | 43 ++--------
 drivers/net/i40e/i40e_ethdev_vf.c                  | 18 +---
 drivers/net/ixgbe/ixgbe_ethdev.c                   | 96 ++++------------------
 drivers/net/liquidio/lio_ethdev.c                  | 53 ++----------
 drivers/net/nfp/nfp_net.c                          | 77 ++---------------
 drivers/net/octeontx/octeontx_ethdev.c             | 17 +---
 drivers/net/sfc/sfc_ethdev.c                       | 21 +----
 drivers/net/sfc/sfc_ev.c                           | 20 +----
 drivers/net/szedata2/rte_eth_szedata2.c            | 19 ++---
 drivers/net/thunderx/nicvf_ethdev.c                | 48 +++++------
 drivers/net/virtio/virtio_ethdev.c                 | 65 +++------------
 drivers/net/vmxnet3/vmxnet3_ethdev.c               | 86 ++++---------------
 .../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               | 61 ++++++++++++++
 24 files changed, 338 insertions(+), 691 deletions(-)

-- 
2.15.1