From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f193.google.com (mail-pf0-f193.google.com [209.85.192.193]) by dpdk.org (Postfix) with ESMTP id 8AE731B03C for ; Fri, 26 Jan 2018 03:01:55 +0100 (CET) Received: by mail-pf0-f193.google.com with SMTP id p1so7205610pfh.4 for ; Thu, 25 Jan 2018 18:01:55 -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=Iknj+xozTgjS64dByVy7yZ6keUyWZyaqJ8ZazTGwFaI=; b=t6HDXDCGzL1Xwfze6dQtKZZQMSTIv55pTiDn/N7Sxx0IoFLMNDKHGTLsqCRrLdTKqQ O+0+aafKH9KZCBBzmR66HExw3nLTwr6F61psjDVE8evYcrZE2ld2NqWqQK5ZPSnQ6+DX 3in2VjqivmFy0DyT0cxQOX56TL99a9UhDBT/ig5d7rX0XTnwuOn0GD1pscYdIP+qxsM1 I78B8K0icwW2pRyoQirAerjK56vxzgA4nhgB9t8O6/629XK0ygmLCz3kZ8gYiRH/41dW dHOASETLwH2Tj3Wfm1ha/xhTADjAsZWd4ng37w5TxImGOeEkevT5dlzRPql1fzTV+s9U okcA== 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=Iknj+xozTgjS64dByVy7yZ6keUyWZyaqJ8ZazTGwFaI=; b=hocsp5vcbqRxg/42NfDBGhA35HJxa2dJhDTZeJsm7Rfy4EQCoZzg4ESzwAqCsKB3oO rQjTFCZbV6L77duVnrFkvOdGoh2b+f5lZIvChyMD18IwYazR1rkHs0z5gSDC/pTeE87a 4In7qKYclzgQtaZ9TaJdWFZcg3d5aTi6wAfYMTEQLGkaurZ78R1+RkBxCWdRtXSMN3/j YlLeELczkKnBr7lZYUQnhGYhDkYSdPo7eiW5MBodBmkyX6MFlsRDe6Yuq9hImXmIiKJX vcGX9cUQ6E1hFx4SIkrTFs5rzX9rlUMuiK5xwM2Do17kDW/O6C9PbSJwNTOmyRvSYDNL z6tQ== X-Gm-Message-State: AKwxytdt+X7xYTqVa2KwdcsDPjfNjrIEnVJDS1hdXNsvuHR62Zwj/OOF VVGZUHqTG4N5g5M1zvwgjOC8xC6Pc/4= X-Google-Smtp-Source: AH8x225nyXrQEvcLBuVd7HWXhOkVgZaFiuzZE6XP1B3WMvRCyzZgQ0Iwcht1outud5npLoXTjTkOrg== X-Received: by 2002:a17:902:2c43:: with SMTP id m61-v6mr13443929plb.189.1516932114061; Thu, 25 Jan 2018 18:01:54 -0800 (PST) Received: from xeon-e3.lan (204-195-18-133.wavecable.com. [204.195.18.133]) by smtp.gmail.com with ESMTPSA id d5sm22141492pfk.2.2018.01.25.18.01.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 Jan 2018 18:01:52 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Date: Thu, 25 Jan 2018 18:01:36 -0800 Message-Id: <20180126020151.979-1-stephen@networkplumber.org> X-Mailer: git-send-email 2.15.1 Subject: [dpdk-dev] [PATCH v8 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: Fri, 26 Jan 2018 02:01:55 -0000 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