Received: by 10.213.65.68 with SMTP id h4csp729349imn; Tue, 13 Mar 2018 20:22:10 -0700 (PDT) X-Google-Smtp-Source: AG47ELurDTiGKnuylHmljyZr7CKwvWboAlGM7ArWCIe9ZJjlL0aPam0CetmsZvabvmOVz6cIlKs4 X-Received: by 10.99.105.70 with SMTP id e67mr2384547pgc.342.1520997729975; Tue, 13 Mar 2018 20:22:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1520997729; cv=none; d=google.com; s=arc-20160816; b=ueGwHkw7wgCyK1KMkivUx+grE4wKwWlC+NxMuLqMgz5ikHuQnvfd6NjZ+1ZtLKV33b Aja1bVDbCBAop7IjQuCqaEbNvdzJqPioIw0h1akptd6jDKmsYcLk0ALZgG9m8H3mOCH/ vle6aHkN1jBrt9VjR9NOV6MlNFto11E58Y6BjnL04MPeGldCB7tKDRehX1TZA8Q+vJz1 8fvPdYs37fch3efByeul2RZJA5/Iur47YDec+QDw3V2P6dWmP8Cs8B258A8dUpgWp3Bn r6Ln1vvIOe5GjTeEx5TsZA/wq1m0uFu4MlkJYOtyqY/4DeqfGJKHpe80uoQ8kB1U+f6W 2Ztg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=KhBcRPWySJ4uTPvGmxk+hk57qARLC3oO4oqMY2yZhSI=; b=CedUqaq0HhklaHYauLdXDOxbBBQTu037rplNSuUtMdYuPgGBQQnAggnp5fEgvQrgWR dL4w8dbJaX25/2D8OK+WTGvKnlMvbHcBO2QNxTB+uO+4zniM5tsK/19Px2IHBLpsv9U4 NLZ24ZHEYWsjES41XGsToxKYRdBP13fKKglem8/ZPpVjTglgKDYj4Ly9/kMVc2eVHF6w xBlmmjco7TSk1uqztAnsZn8uSRPiiHiglFmuFKZyXd070LP4ELTC1eCCwqPyUhzBY+A7 nxczPTbKYN4a/yZkLVXXQ3zSEs7oTZKVnh2KDvoh8zHtUPpAIrlnIqEbW12Myng4oR4F b4HA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=OK0d2AYa; dkim=pass header.i=@codeaurora.org header.s=default header.b=BGLMRunN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x14si1159865pgq.168.2018.03.13.20.21.55; Tue, 13 Mar 2018 20:22:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=OK0d2AYa; dkim=pass header.i=@codeaurora.org header.s=default header.b=BGLMRunN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933480AbeCNDUz (ORCPT + 99 others); Tue, 13 Mar 2018 23:20:55 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:44150 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932937AbeCNDUt (ORCPT ); Tue, 13 Mar 2018 23:20:49 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 0F8E060854; Wed, 14 Mar 2018 03:20:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997649; bh=ZvC795UOT9TwcGkYO+Yxlw0hBkMl/OFOeiBUptXU2SI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OK0d2AYaZDxJonKVPz7rN8Xb3Fxa6KpHYKBKAXYDMHI0eCw3iY61jCeFZ0wYMZllZ K5PhmD8hOD/S3hNnfYoTPG/hz3V1OpcDlxQVpW65QiEhEY2rVgO+FtHnr5Oq6jgWe0 +urlhODb9RaGOJQfQFfwbRd+YtAYIWuuqIFomsgQ= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from drakthul.qualcomm.com (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: okaya@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id E55DF60854; Wed, 14 Mar 2018 03:20:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997645; bh=ZvC795UOT9TwcGkYO+Yxlw0hBkMl/OFOeiBUptXU2SI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BGLMRunNODeNc3s7b9aOP2ip2ihvX3ZauYe29ht3ftTJrLAyswMj4A6970c1YZyux 1LGJyEuIQih/nbjyVx8v9UA35KFcYKK3gpTNeDWeihsM5QKdCZ+O78CLYZomXPpsAW xj+Uly3X6RLq+vTtEDvMKmznhKkWA9+7n8AXBtiU= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org E55DF60854 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=okaya@codeaurora.org From: Sinan Kaya To: netdev@vger.kernel.org, timur@codeaurora.org, sulrich@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sinan Kaya , Jeff Kirsher , intel-wired-lan@lists.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/7] ixgbevf: eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:28 -0400 Message-Id: <1520997629-17361-7-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1520997629-17361-1-git-send-email-okaya@codeaurora.org> References: <1520997629-17361-1-git-send-email-okaya@codeaurora.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Code includes wmb() followed by writel() in multiple places. writel() already has a barrier on some architectures like arm64. This ends up CPU observing two barriers back to back before executing the register write. Since code already has an explicit barrier call, changing writel() to writel_relaxed(). Signed-off-by: Sinan Kaya --- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 5 ++++- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h index f695242..64d0e0b 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf.h @@ -244,9 +244,12 @@ static inline u16 ixgbevf_desc_unused(struct ixgbevf_ring *ring) return ((ntc > ntu) ? 0 : ring->count) + ntc - ntu - 1; } +/* Assumes caller has executed a write barrier to order memory and device + * requests. + */ static inline void ixgbevf_write_tail(struct ixgbevf_ring *ring, u32 value) { - writel(value, ring->tail); + writel_relaxed(value, ring->tail); } #define IXGBEVF_RX_DESC(R, i) \ diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index 9b3d43d..0ba7f59 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -3643,6 +3643,13 @@ static void ixgbevf_tx_map(struct ixgbevf_ring *tx_ring, tx_ring->next_to_use = i; + /* Force memory writes to complete before letting h/w + * know there are new descriptors to fetch. (Only + * applicable for weak-ordered memory model archs, + * such as IA-64). + */ + wmb(); + /* notify HW of packet */ ixgbevf_write_tail(tx_ring, i); -- 2.7.4