Received: by 10.213.65.68 with SMTP id h4csp66188imn; Mon, 19 Mar 2018 19:51:04 -0700 (PDT) X-Google-Smtp-Source: AG47ELuX/THeZwF5txe4pr/sF87GQIdXqPIkRXPdkFi0vWPhQYDIUAktSVDWdPQkd/9A1Fq9beuM X-Received: by 10.98.194.134 with SMTP id w6mr8655245pfk.194.1521514264609; Mon, 19 Mar 2018 19:51:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521514264; cv=none; d=google.com; s=arc-20160816; b=YpDtRJo5xOkUEr3Inpw6JSyrlS7zG6PI2M0c+KAoOXIKIJIkAcDSVLg2yz3M0dIi/q DQytuW1CCK0pTOCCDTOpTE3IljjU1eu7XHKRiUyo2CMVvmS2reWO7CFToOBmHJQ3OX4u aG9xQ3W7atAwRNaetDQrW5Eef5q2AIekvKNyWnMvzMQJRQ99puy6VV751I1rpymH3hIk UTEN0pO1nuncfyK9sxery0oFphl8WDVoYpfZBfJ19JMbYQPwGp8k0TaRkfC+D/+siiXi UCvpCdkQ1Y/UyvcZCyiTYEVRWDvm05hX8v085MpSb//KU8wOnQT1Cn0ri1LkTRwBGKop qITA== 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=IB+43jxwzFcJopYd7gG6aSNIp1Nfk42eUI1cRK2tkvE=; b=DVQhNtBXvW2YiO76L/R+KzFRUBkFNQeXLES30aE538eEfChPd6EqiY4neCmWJpT2k5 qXMri04encKqmt1YRL+KTPH9JNojSKP6HG6NmKE5NPzoKmAuWL1fefboXUoGIsLuyP9l L00bFnZTBRgrvvIo/AtNpTTvz5FbOhjc11b2urku+bBkrqvKpLuK/a4Jl9jKWm1MgBGA JnwO7/CDcWsq/shdcSPnh1hxlJNJ2/Mw6Ih1p8TUdGFfOc4D1D1Ja9C05CV6aTJs1KNU NGG4z/V/q23Sc+k57nA8hy08aR70Y9DJuPS3qhufIV1z2pxn57UavkDEFLbc84T2iUgJ Z2Zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=mDiXX+Kl; dkim=pass header.i=@codeaurora.org header.s=default header.b=jB8H9CY4; 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 g1si470438pgs.323.2018.03.19.19.50.50; Mon, 19 Mar 2018 19:51:04 -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=mDiXX+Kl; dkim=pass header.i=@codeaurora.org header.s=default header.b=jB8H9CY4; 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 S1751913AbeCTCtl (ORCPT + 99 others); Mon, 19 Mar 2018 22:49:41 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:56062 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751014AbeCTCsC (ORCPT ); Mon, 19 Mar 2018 22:48:02 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id F110360F91; Tue, 20 Mar 2018 02:48:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1521514082; bh=X1zpRUZ2wV56jV42+Jppglw5loG/W4w5Zw915PF201M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mDiXX+Kl+t7O0IQkPwcunV3ppnaAtA9Ssw7qUax/Q4C+qL382mfKo2lOr4yuSjPBG ikPhfdw+aLLt4oksmyqdNW9SmoNBp9HYDdKRIn9qtnlD5N9zsWOsY0SzwwjEfEooOj B+cCN3TumSQTZGcHjP8n5tPFNagsnnZ+ouU1T2MY= 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 00F3A60FA9; Tue, 20 Mar 2018 02:47:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1521514081; bh=X1zpRUZ2wV56jV42+Jppglw5loG/W4w5Zw915PF201M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jB8H9CY4kj+yHhEIzRSwH2KQ2/Avs4jVdGX3QSjdyDnZ01hOvkOzNGbMgQhdQftVw 587Ngj33JcmyQr6CDLGVQotavyj5z9mdV0wHHUvgZuLH3mGYaEA93ndshM7mt7PnO8 wgVtgFK8XAoCX3a2odTqGEjGiRfGEwSnTTTN9bjQ= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 00F3A60FA9 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: linux-rdma@vger.kernel.org, timur@codeaurora.org, sulrich@codeaurora.org Cc: linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sinan Kaya , Steve Wise , Doug Ledford , Jason Gunthorpe , linux-kernel@vger.kernel.org Subject: [PATCH v4 4/6] infiniband: cxgb4: Eliminate duplicate barriers on weakly-ordered archs Date: Mon, 19 Mar 2018 22:47:46 -0400 Message-Id: <1521514068-8856-5-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1521514068-8856-1-git-send-email-okaya@codeaurora.org> References: <1521514068-8856-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(). 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/infiniband/hw/cxgb4/t4.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/t4.h b/drivers/infiniband/hw/cxgb4/t4.h index 8369c7c..6e5658a 100644 --- a/drivers/infiniband/hw/cxgb4/t4.h +++ b/drivers/infiniband/hw/cxgb4/t4.h @@ -457,7 +457,7 @@ static inline void pio_copy(u64 __iomem *dst, u64 *src) int count = 8; while (count) { - writeq(*src, dst); + writeq_relaxed(*src, dst); src++; dst++; count--; @@ -477,15 +477,15 @@ static inline void t4_ring_sq_db(struct t4_wq *wq, u16 inc, union t4_wr *wqe) (u64 *)wqe); } else { pr_debug("DB wq->sq.pidx = %d\n", wq->sq.pidx); - writel(PIDX_T5_V(inc) | QID_V(wq->sq.bar2_qid), - wq->sq.bar2_va + SGE_UDB_KDOORBELL); + writel_relaxed(PIDX_T5_V(inc) | QID_V(wq->sq.bar2_qid), + wq->sq.bar2_va + SGE_UDB_KDOORBELL); } /* Flush user doorbell area writes. */ wmb(); return; } - writel(QID_V(wq->sq.qid) | PIDX_V(inc), wq->db); + writel_relaxed(QID_V(wq->sq.qid) | PIDX_V(inc), wq->db); } static inline void t4_ring_rq_db(struct t4_wq *wq, u16 inc, @@ -502,15 +502,15 @@ static inline void t4_ring_rq_db(struct t4_wq *wq, u16 inc, (void *)wqe); } else { pr_debug("DB wq->rq.pidx = %d\n", wq->rq.pidx); - writel(PIDX_T5_V(inc) | QID_V(wq->rq.bar2_qid), - wq->rq.bar2_va + SGE_UDB_KDOORBELL); + writel_relaxed(PIDX_T5_V(inc) | QID_V(wq->rq.bar2_qid), + wq->rq.bar2_va + SGE_UDB_KDOORBELL); } /* Flush user doorbell area writes. */ wmb(); return; } - writel(QID_V(wq->rq.qid) | PIDX_V(inc), wq->db); + writel_relaxed(QID_V(wq->rq.qid) | PIDX_V(inc), wq->db); } static inline int t4_wq_in_error(struct t4_wq *wq) -- 2.7.4