From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; Tue, 23 Jan 2018 00:55:02 +0100 (CET) Received: by mail-pg0-f44.google.com with SMTP id m20so8342579pgc.11 for ; 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 To: dev@dpdk.org Cc: Stephen Hemminger 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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