From patchwork Wed Mar 14 03:20:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885598 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="iK1k1KLm"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="iK1k1KLm"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H8d57GSz9sV5 for ; Wed, 14 Mar 2018 14:22:25 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933358AbeCNDUi (ORCPT ); Tue, 13 Mar 2018 23:20:38 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43090 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932937AbeCNDUg (ORCPT ); Tue, 13 Mar 2018 23:20:36 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E0E0960851; Wed, 14 Mar 2018 03:20:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997635; bh=zqEDc5+sVTJuqPfrwG2GU85GD5muqnwKbTmbuxIGE+Y=; h=From:To:Cc:Subject:Date:From; b=iK1k1KLmr6OdDgzdNXBW1z/H9i7ewYbt1TKlgYE+TfIi5FRkcA0j1JDw1l54rKqOY nWpuCtTv2Gdr6pmR7KsgjVkqLh6cB6UOrZA8ogW2Pa5GtiMP55zL/Dn+xOZo5YraJj qAYHRFLek6ztJo0jp33Dwipi64tUY1aogbueTDhM= 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 8142F607A2; Wed, 14 Mar 2018 03:20:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997635; bh=zqEDc5+sVTJuqPfrwG2GU85GD5muqnwKbTmbuxIGE+Y=; h=From:To:Cc:Subject:Date:From; b=iK1k1KLmr6OdDgzdNXBW1z/H9i7ewYbt1TKlgYE+TfIi5FRkcA0j1JDw1l54rKqOY nWpuCtTv2Gdr6pmR7KsgjVkqLh6cB6UOrZA8ogW2Pa5GtiMP55zL/Dn+xOZo5YraJj qAYHRFLek6ztJo0jp33Dwipi64tUY1aogbueTDhM= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 8142F607A2 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 1/7] i40e/i40evf: Eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:22 -0400 Message-Id: <1520997629-17361-1-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Code includes wmb() followed by writel(). 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/i40e/i40e_txrx.c | 2 +- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c index e554aa6cf..7028516 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c @@ -1375,7 +1375,7 @@ static inline void i40e_release_rx_desc(struct i40e_ring *rx_ring, u32 val) * such as IA-64). */ wmb(); - writel(val, rx_ring->tail); + writel_relaxed(val, rx_ring->tail); } /** diff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c index 357d605..2d323fc 100644 --- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c +++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c @@ -667,7 +667,7 @@ static inline void i40e_release_rx_desc(struct i40e_ring *rx_ring, u32 val) * such as IA-64). */ wmb(); - writel(val, rx_ring->tail); + writel_relaxed(val, rx_ring->tail); } /** From patchwork Wed Mar 14 03:20:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885599 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="C2FM2NSj"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="C2FM2NSj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H8v5YQjz9sV5 for ; Wed, 14 Mar 2018 14:22:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933432AbeCNDW1 (ORCPT ); Tue, 13 Mar 2018 23:22:27 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43162 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933316AbeCNDUi (ORCPT ); Tue, 13 Mar 2018 23:20:38 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 9B112607A2; Wed, 14 Mar 2018 03:20:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997637; bh=wb9xtlCktc5g3rJH4kmsb3V4Ftg8s5ceqodGJJolQjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C2FM2NSj8sh+zKlqfcIzdm5ZQD2wgxtOCUpzldh49OMY/0KG73A8FjVyVlmnJByt7 c/2uPQfCcFDlM8ftiqryEghbugZlQZUI3T/j9E8yU964omceTMboS9dfQbfwIh2dO+ IZuI6ihm/QvfWFqST8GX1qh1IG49IfY2+N4YvFiY= 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 27EE0607A2; Wed, 14 Mar 2018 03:20:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997637; bh=wb9xtlCktc5g3rJH4kmsb3V4Ftg8s5ceqodGJJolQjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C2FM2NSj8sh+zKlqfcIzdm5ZQD2wgxtOCUpzldh49OMY/0KG73A8FjVyVlmnJByt7 c/2uPQfCcFDlM8ftiqryEghbugZlQZUI3T/j9E8yU964omceTMboS9dfQbfwIh2dO+ IZuI6ihm/QvfWFqST8GX1qh1IG49IfY2+N4YvFiY= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 27EE0607A2 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 2/7] ixgbe: eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:23 -0400 Message-Id: <1520997629-17361-2-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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@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/ixgbe/ixgbe_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 0da5aa2..35ca1d8 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -1692,7 +1692,7 @@ void ixgbe_alloc_rx_buffers(struct ixgbe_ring *rx_ring, u16 cleaned_count) * such as IA-64). */ wmb(); - writel(i, rx_ring->tail); + writel_relaxed(i, rx_ring->tail); } } @@ -2453,7 +2453,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector, * know there are new descriptors to fetch. */ wmb(); - writel(ring->next_to_use, ring->tail); + writel_relaxed(ring->next_to_use, ring->tail); xdp_do_flush_map(); } @@ -10014,7 +10014,7 @@ static void ixgbe_xdp_flush(struct net_device *dev) * are new descriptors to fetch. */ wmb(); - writel(ring->next_to_use, ring->tail); + writel_relaxed(ring->next_to_use, ring->tail); return; } From patchwork Wed Mar 14 03:20:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885596 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="S1E/5PhI"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="M3pkfwFB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H7n4pf0z9sV5 for ; Wed, 14 Mar 2018 14:21:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933417AbeCNDUn (ORCPT ); Tue, 13 Mar 2018 23:20:43 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43230 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933384AbeCNDUj (ORCPT ); Tue, 13 Mar 2018 23:20:39 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 431F760854; Wed, 14 Mar 2018 03:20:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997639; bh=26oYoO1jY7KROiUtX931ZvHDy54r40T7a7fQCzm8cLw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S1E/5PhIOiYkO5PxDL2cwhiy07zFqS4k23sDfs3NF/UGcxgXdXEg1IfxZXkaWmne1 7+EpnLV8zl8eQMiaaOurbW5XiILTwJ96zB58LD+ojMqeilU9nTTdCb9rqIhSJqiqjX ZyAeYb0O5TW7r4hiiRq3DQ6ezhg5p+nV2iHeBpk8= 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 89BC66081A; Wed, 14 Mar 2018 03:20:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997638; bh=26oYoO1jY7KROiUtX931ZvHDy54r40T7a7fQCzm8cLw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M3pkfwFBFZe3cIfpFlmk8JHfCUuc2NgRpkgqBXWZEDhHhNGkK+57gdQEYm++mALOg acprLBz3PtBLTmPxsCF5yatNX/fMjO63RyGnYO3dz65hTsAm9US4dGWNblpa9yHKid m2ZqtpunmEl6O+U72UgzDoGmPhx8tXh5eLChp6Mo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 89BC66081A 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 , Michal Kalderon , Ariel Elior , Doug Ledford , Jason Gunthorpe , linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/7] RDMA/qedr: eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:24 -0400 Message-Id: <1520997629-17361-3-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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@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 Acked-by: Jason Gunthorpe --- drivers/infiniband/hw/qedr/verbs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 53f00db..ccd55f4 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -1870,7 +1870,7 @@ static int qedr_update_qp_state(struct qedr_dev *dev, if (rdma_protocol_roce(&dev->ibdev, 1)) { wmb(); - writel(qp->rq.db_data.raw, qp->rq.db); + writel_relaxed(qp->rq.db_data.raw, qp->rq.db); /* Make sure write takes effect */ mmiowb(); } @@ -3247,7 +3247,7 @@ int qedr_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, * redundant doorbell. */ wmb(); - writel(qp->sq.db_data.raw, qp->sq.db); + writel_relaxed(qp->sq.db_data.raw, qp->sq.db); /* Make sure write sticks */ mmiowb(); From patchwork Wed Mar 14 03:20:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885595 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="koXc+qD/"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="koXc+qD/"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H7g6yL6z9sV5 for ; Wed, 14 Mar 2018 14:21:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933430AbeCNDUp (ORCPT ); Tue, 13 Mar 2018 23:20:45 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43286 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932937AbeCNDUk (ORCPT ); Tue, 13 Mar 2018 23:20:40 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 6C4F26081A; Wed, 14 Mar 2018 03:20:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997640; bh=RhVMVKbH39d3U/MmgycBImExeegGH/1vCCzF6pwBT/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=koXc+qD/VUXey5SYjMf9ewah+wXy1b1/hsAenO0nb5mK9PuP9id4vu90l3N2U4K2Z QGI+lWmTDYQHdHURcMl8IqxLCn7uXYrM2F4kFUYUDsGygGrSsDSgSNwVpAa/f583wt c4QC1lerdJG0l+l89CIT3e/tbOaNugIAji3Hl2i4= 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 312B86083C; Wed, 14 Mar 2018 03:20:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997640; bh=RhVMVKbH39d3U/MmgycBImExeegGH/1vCCzF6pwBT/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=koXc+qD/VUXey5SYjMf9ewah+wXy1b1/hsAenO0nb5mK9PuP9id4vu90l3N2U4K2Z QGI+lWmTDYQHdHURcMl8IqxLCn7uXYrM2F4kFUYUDsGygGrSsDSgSNwVpAa/f583wt c4QC1lerdJG0l+l89CIT3e/tbOaNugIAji3Hl2i4= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 312B86083C 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 4/7] igbvf: eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:25 -0400 Message-Id: <1520997629-17361-4-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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Code includes wmb() followed by writel(). 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/igbvf/netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index 4214c15..fe3441b 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c @@ -251,7 +251,7 @@ static void igbvf_alloc_rx_buffers(struct igbvf_ring *rx_ring, * such as IA-64). */ wmb(); - writel(i, adapter->hw.hw_addr + rx_ring->tail); + writel_relaxed(i, adapter->hw.hw_addr + rx_ring->tail); } } From patchwork Wed Mar 14 03:20:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885597 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="Q0ziA0tu"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="cDif6xXc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H871f88z9sV8 for ; Wed, 14 Mar 2018 14:21:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933533AbeCNDVr (ORCPT ); Tue, 13 Mar 2018 23:21:47 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43412 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933404AbeCNDUm (ORCPT ); Tue, 13 Mar 2018 23:20:42 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 2DBED60F6B; Wed, 14 Mar 2018 03:20:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997642; bh=ZdSDtqqrrxUcevrOlVFc+bc1wDyZ/NSgGMrKeIBB2So=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q0ziA0tuUeEZTl6CZnahoMoO0wox+6s6X8sryEH7jqeCXbsDgNnpEISqo3+tX9Z+V CXKkjdOe3s0LZV2TbB7q0ljOeiGzfcLfd0ycPVS3crfvGm8bfviA6KnCH75pur+s0t AwyAJcqn72TUnnmZwW/iMYPp6tzixlXrZo00cFWw= 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 9418060A05; Wed, 14 Mar 2018 03:20:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997641; bh=ZdSDtqqrrxUcevrOlVFc+bc1wDyZ/NSgGMrKeIBB2So=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cDif6xXc50IEpf4M1vas649eWyDa7+sUbqkp21EYBFw+FotJjTnwmcHox+Ei+HjGY WT36GzIrL8dMy6KKivJwXE78n7jHay4nTAgYErjIdUAbVBuuSURk43RvjjSZgtsLj6 pHJt4L63e3LJk64F5RRo1NAI+wmtE0hFDWsA+WE4= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 9418060A05 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 5/7] igb: eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:26 -0400 Message-Id: <1520997629-17361-5-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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Code includes wmb() followed by writel(). 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/igb/igb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index b88fae7..ba8ccb5 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -8072,7 +8072,7 @@ void igb_alloc_rx_buffers(struct igb_ring *rx_ring, u16 cleaned_count) * such as IA-64). */ wmb(); - writel(i, rx_ring->tail); + writel_relaxed(i, rx_ring->tail); } } From patchwork Wed Mar 14 03:20:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885594 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="YuGg0fK7"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="ZaAoybOc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H7W0qZGz9sV5 for ; Wed, 14 Mar 2018 14:21:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933497AbeCNDVQ (ORCPT ); Tue, 13 Mar 2018 23:21:16 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:43588 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933429AbeCNDUp (ORCPT ); Tue, 13 Mar 2018 23:20:45 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E550960867; Wed, 14 Mar 2018 03:20:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997645; bh=ka8d+sT21K8+IXcE+cWsjS54nGzKj2ZImZ7FtVdRJzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YuGg0fK7JuPPekS+m0hZulI7NMy2tUEAFkpohk/M/aDebWGcLAK5yTuay8fyIXIP3 gDKZ+hDVZk7gxDIO/jRQIeQPeFQR1I26Q7FU64L1Cv6LrYZqhG8R4Ohq6tcnFmAa3g 8Hh7uiOL05Xqmfoy29VkYoiAKbMgTxEIold6j02E= 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 4514460867; Wed, 14 Mar 2018 03:20:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1520997643; bh=ka8d+sT21K8+IXcE+cWsjS54nGzKj2ZImZ7FtVdRJzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZaAoybOcfcXDudn3l4rK/WTsFv80md9V04DjOP2vnZDy8Ay3sABfAQYQL9mmNNnt0 up/KQA2A8Lm/sJedsvl1VNW3zGwgi/7LEFwHHlXsUwgcr6HTb4+MrC4Bgq66JGWE27 ypn/rTsmrxRpHEeHdZDZ8vBo5hu6kNXgzFmZN5Ok= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 4514460867 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 6/7] e1000: eliminate duplicate barriers on weakly-ordered archs Date: Tue, 13 Mar 2018 23:20:27 -0400 Message-Id: <1520997629-17361-6-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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Code includes wmb() followed by writel(). 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/e1000/e1000_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index 3dd4aeb..e0e583a 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -4573,7 +4573,7 @@ e1000_alloc_jumbo_rx_buffers(struct e1000_adapter *adapter, * such as IA-64). */ wmb(); - writel(i, adapter->hw.hw_addr + rx_ring->rdt); + writel_relaxed(i, adapter->hw.hw_addr + rx_ring->rdt); } } @@ -4688,7 +4688,7 @@ static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter, * such as IA-64). */ wmb(); - writel(i, hw->hw_addr + rx_ring->rdt); + writel_relaxed(i, hw->hw_addr + rx_ring->rdt); } } From patchwork Wed Mar 14 03:20:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sinan Kaya X-Patchwork-Id: 885593 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=codeaurora.org header.i=@codeaurora.org header.b="OK0d2AYa"; dkim=pass (1024-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="BGLMRunN"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 401H774fRSz9sV5 for ; Wed, 14 Mar 2018 14:21:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933463AbeCNDUy (ORCPT ); Tue, 13 Mar 2018 23:20:54 -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 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@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);