Received: by 10.213.65.68 with SMTP id h4csp834377imn; Thu, 22 Mar 2018 09:33:10 -0700 (PDT) X-Google-Smtp-Source: AG47ELtHjEQ0/+k5NHkfLkKg3ZDE73fUi+K5AF8bbvOFa+7pVa+BmHPMyGCRlHfNDvj4VyqhplwI X-Received: by 10.99.112.17 with SMTP id l17mr18416573pgc.281.1521736390583; Thu, 22 Mar 2018 09:33:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521736390; cv=none; d=google.com; s=arc-20160816; b=tUslQWW0psinfSDaaBxovB+fowJcW5gyomdQLTYC5cHHUQHmHB84SI09aHLz6KL0iX CQAgpCp7PsQJoPAGLZXa3u2Ri1Ui4V9ZFSNQYd4GcyABHpSd1JfT5N4CLeihdM8XpmQ1 CcZpMISKTH13KRJYsyV+XspD6tDL87/OTpwt7bCjwo1L3WszMbAKZ4NFy6meBtXgAyh2 OjFfrfGre1JSG7YgG4OHOtmWoNe0WB5Qv0moxZwuTDuqmhwf8wpYsGJH8BQiJO7DDtz4 IlrKl8pYVHx2Sxx3oxiSDkm6h82wKu+Y2yyDYxLCXmG9DISp3VJyywjly7TmIwUUttfq tcqA== 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 :message-id:date:subject:cc:to:from:dmarc-filter:dkim-signature :dkim-signature:arc-authentication-results; bh=9immuTLW07nVB4e3ZxqrLnNenKseMZvNYCxYHNoarjE=; b=adDhILUg6MbLXSj64johfW8KGmh3fiXZA1TCvwt6zfY/D7fRrCpK+/fYmhOicnsTCB 6G1wlWL+waijLmr0Df2FmfUab7uTZ5uopJOqOsJOWBHLjFTRIky/wcCZUeRAjBPahMhc bG3A7qeyZswLp6n3a5zNg2XEiacX7IVxWwcZuaFS47GCCsQ3yYZbWAAMFJZjyB0+Gi2z 3Pk7odFdWDu77HpmcARcXb64WiBpXutgPytUXhS6SLJtuKHPMuAVMxM/KhvIVqGaE1CC CxEEcbqs9RmYX8XdoVqcUUyyF6EHNpbT+BpafKU4aobdZp9MqBNIo4UxL1h273GLwjBV +qXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=ahGqnluY; dkim=pass header.i=@codeaurora.org header.s=default header.b=ahGqnluY; 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 189si4566708pge.444.2018.03.22.09.32.55; Thu, 22 Mar 2018 09:33:10 -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=ahGqnluY; dkim=pass header.i=@codeaurora.org header.s=default header.b=ahGqnluY; 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 S1751676AbeCVQay (ORCPT + 99 others); Thu, 22 Mar 2018 12:30:54 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:41022 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750863AbeCVQav (ORCPT ); Thu, 22 Mar 2018 12:30:51 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id C036260C54; Thu, 22 Mar 2018 16:30:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1521736250; bh=hGb4O2x7FjRLDgQ7Cd8PA8ZloLdYMumBeD2pzirvYaQ=; h=From:To:Cc:Subject:Date:From; b=ahGqnluY71YSmK5NfFKqiQGVC2inhD+LBUXXufbGPawn/ZKMzNBkqfut32CgpGKG+ S04zGotqqIYgCifb7i4S5eAyZgpB0GTG0SaYGDuIg6bpIg9Ev1LJ9hNk2MN7w/w0TE P52UVWVqCpNLZTbtlrarBi2uMn20U7hBQct5ve8E= 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 264A060131; Thu, 22 Mar 2018 16:30:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1521736250; bh=hGb4O2x7FjRLDgQ7Cd8PA8ZloLdYMumBeD2pzirvYaQ=; h=From:To:Cc:Subject:Date:From; b=ahGqnluY71YSmK5NfFKqiQGVC2inhD+LBUXXufbGPawn/ZKMzNBkqfut32CgpGKG+ S04zGotqqIYgCifb7i4S5eAyZgpB0GTG0SaYGDuIg6bpIg9Ev1LJ9hNk2MN7w/w0TE P52UVWVqCpNLZTbtlrarBi2uMn20U7hBQct5ve8E= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 264A060131 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 , Michal Kalderon , Ariel Elior , Doug Ledford , Jason Gunthorpe , linux-kernel@vger.kernel.org Subject: [PATCH v6] RDMA/qedr: eliminate duplicate barriers on weakly-ordered archs #2 Date: Thu, 22 Mar 2018 12:30:44 -0400 Message-Id: <1521736245-23662-1-git-send-email-okaya@codeaurora.org> X-Mailer: git-send-email 2.7.4 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/infiniband/hw/qedr/verbs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 53f00db..d1cf9a0 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -860,7 +861,7 @@ static void doorbell_cq(struct qedr_cq *cq, u32 cons, u8 flags) wmb(); cq->db.data.agg_flags = flags; cq->db.data.value = cpu_to_le32(cons); - writeq(cq->db.raw, cq->db_addr); + writeq_relaxed(cq->db.raw, cq->db_addr); /* Make sure write would stick */ mmiowb(); @@ -3338,7 +3339,7 @@ int qedr_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr, qp->rq.db_data.data.value++; - writel(qp->rq.db_data.raw, qp->rq.db); + writel_relaxed(qp->rq.db_data.raw, qp->rq.db); /* Make sure write sticks */ mmiowb(); -- 2.7.4