Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp3278866ybl; Mon, 19 Aug 2019 15:45:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqwjRf4zNyl7e135Eyf9xyxxd1jKhrzNhTgRE767pE4ogfupk0qsP5C1+s0sUy8e9UuIzRlw X-Received: by 2002:a63:f926:: with SMTP id h38mr21933709pgi.80.1566254730412; Mon, 19 Aug 2019 15:45:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566254730; cv=none; d=google.com; s=arc-20160816; b=z75yc4bZKz1kUfphfdqCMb2XtoiiZ2CPnGgzGSN1HI0nuL06ipwHxUwqoZXq+3cVq2 4a2gd77yMO90pz+Qrq5Sh0qY+JPfR9+ni6kauWd6L9smF54tWvmhLBhc0xQ4gieTeOAY pAq3flT5Y+2c9fQ9g1hfmS5irs7Ud97JpwsxsPUIZyn+wr2B1dpPy5sw6awdXFgh/lX2 QiRHqQuqM14mVvhwrdWGrf9rA8mq6auaQd4wcHG0ybMS2C46uMKbX+o2xLDyS3pUVNr8 dnVJV52dr2D7hCl645L10S1yZ5GUe5k+lndZGwufEPIVWLIqSiyIMsRmR4crtH0+W+JO evcQ== 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 :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject:dkim-signature; bh=zmFja180y9h2DsLU8o+XPO/YzzGcxYC2qni3J+OcF8M=; b=wkluIMBSTCV0LRVmY+siUn/xl0RHiXmSeNyOWM/kl6w9Z1fmbVuB5KsfAcsIECwiyl bICsJhrtj8EJ2rDJsJhnu7aQHTgKLHgFglp5d41Q1VBTVi8VGtkUqW198zdOnkgZRNpq KHWjAf+Rp32pHnQCBMmdxNHtXj2MKkIjxyPPXeYp1U+lc1zzlcoQSu2Xfl1+JkWkO0ue a+qe5VCa9IoqZRRR24Ir2m+U/xJQa1nz6S5xUTu0Efrnxgp+oi8XFHoH7E3hkcF9PS9V cMfzVE20jY7h+0mnXXwe2oC1I6ncc+mzAUP6r2CtMEbYThCcQvjBRpbvY4j9Qp7pLsMr 4yWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=AlUal8MH; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e15si9467182pjr.87.2019.08.19.15.45.16; Mon, 19 Aug 2019 15:45:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=AlUal8MH; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728438AbfHSWpN (ORCPT + 99 others); Mon, 19 Aug 2019 18:45:13 -0400 Received: from mail-oi1-f193.google.com ([209.85.167.193]:40147 "EHLO mail-oi1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728484AbfHSWpN (ORCPT ); Mon, 19 Aug 2019 18:45:13 -0400 Received: by mail-oi1-f193.google.com with SMTP id h21so2610123oie.7; Mon, 19 Aug 2019 15:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=zmFja180y9h2DsLU8o+XPO/YzzGcxYC2qni3J+OcF8M=; b=AlUal8MHSRx1lnRXcOv8L7WlGoqDJLCO8biAWvoPZr/AcouZgxyCO8OChgEuyo1KhY 2OID5aZhs96By9b1UOY2xWIpAT9M3QL4jcb6ByY5wZp1QP/KQdxuxggQ0n14AChwAnS8 EsdOSIRvwrgeSdw3PBSGrsOWvj4MRqkknq2YZpbjiQqkqepVPmF85Sbo5yAHcfRyBQli 2WsTm6zTu9VmX39EnUffErOTDiWegbM9YdiJicVq7ctqu1MAvNrIAnzACgNhuzc1YDxN hluNHz1bF/YaHNUpKq9pfifj7G87vJlSNaaoScjPtnW1nYRLpRirQV3BfW/q9GisjX28 68Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:cc:date:message-id :in-reply-to:references:user-agent:mime-version :content-transfer-encoding; bh=zmFja180y9h2DsLU8o+XPO/YzzGcxYC2qni3J+OcF8M=; b=foX3dynGgcudlLBFHhqpOFmziPa8SSgIZ55p5siUOCaGJHuV/NOkMbNzQq2NZTjqvc gWucZC4TxoqpjQx65K/iYRldEZpruIxzZM3fEmI7I4yppc85IIZ5UDUaWRj9ebdzm85G fRwty77RZp4N7VnixxlBLu8InUwNG4aQM+4Jlm8bAB0RIhR0RpKRZzMduXVsN0a3QwIk d2nYkcFDwphfYH8ScAw14Kipod0WTBcHS/bdD6cfcuZz6JoGD1lWMSH3QytVqXF8FLrh 3bJV1kv6JJCYKlYMlSTLsVBiJCYbcV9cpwDvA68cYMWl1JcDX/uueblxvmdoqQg71zNe 2jPA== X-Gm-Message-State: APjAAAVggEyv2b1hHfv1LF6tZ1hT24CjbtF7MdGd/KY6ESdrnbI46mht anisRuuPhbALpToC8HHl36UlLlYs X-Received: by 2002:aca:5744:: with SMTP id l65mr15446127oib.159.1566254712147; Mon, 19 Aug 2019 15:45:12 -0700 (PDT) Received: from seurat29.1015granger.net ([12.235.16.3]) by smtp.gmail.com with ESMTPSA id a22sm5867379otr.3.2019.08.19.15.45.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Aug 2019 15:45:11 -0700 (PDT) Subject: [PATCH v2 12/21] xprtrdma: Combine rpcrdma_mr_put and rpcrdma_mr_unmap_and_put From: Chuck Lever To: anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org, linux-rdma@vger.kernel.org Date: Mon, 19 Aug 2019 18:44:50 -0400 Message-ID: <156625467065.8161.9671734536400171055.stgit@seurat29.1015granger.net> In-Reply-To: <156625401091.8161.14744201497689200191.stgit@seurat29.1015granger.net> References: <156625401091.8161.14744201497689200191.stgit@seurat29.1015granger.net> User-Agent: StGit/unknown-version MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Clean up. There is only one remaining rpcrdma_mr_put call site, and it can be directly replaced with unmap_and_put because mr->mr_dir is set to DMA_NONE just before the call. Now all the call sites do a DMA unmap, and we can just rename mr_unmap_and_put to mr_put, which nicely matches mr_get. Signed-off-by: Chuck Lever --- net/sunrpc/xprtrdma/frwr_ops.c | 6 +++--- net/sunrpc/xprtrdma/verbs.c | 32 ++++++++------------------------ net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/net/sunrpc/xprtrdma/frwr_ops.c b/net/sunrpc/xprtrdma/frwr_ops.c index d7e763fafa04..97e1804139b8 100644 --- a/net/sunrpc/xprtrdma/frwr_ops.c +++ b/net/sunrpc/xprtrdma/frwr_ops.c @@ -129,7 +129,7 @@ void frwr_reset(struct rpcrdma_req *req) struct rpcrdma_mr *mr; while ((mr = rpcrdma_mr_pop(&req->rl_registered))) - rpcrdma_mr_unmap_and_put(mr); + rpcrdma_mr_put(mr); } /** @@ -453,7 +453,7 @@ void frwr_reminv(struct rpcrdma_rep *rep, struct list_head *mrs) if (mr->mr_handle == rep->rr_inv_rkey) { list_del_init(&mr->mr_list); trace_xprtrdma_mr_remoteinv(mr); - rpcrdma_mr_unmap_and_put(mr); + rpcrdma_mr_put(mr); break; /* only one invalidated MR per RPC */ } } @@ -463,7 +463,7 @@ static void __frwr_release_mr(struct ib_wc *wc, struct rpcrdma_mr *mr) if (wc->status != IB_WC_SUCCESS) rpcrdma_mr_recycle(mr); else - rpcrdma_mr_unmap_and_put(mr); + rpcrdma_mr_put(mr); } /** diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c index ee6fcf10425b..5e0b774ed522 100644 --- a/net/sunrpc/xprtrdma/verbs.c +++ b/net/sunrpc/xprtrdma/verbs.c @@ -1233,34 +1233,15 @@ rpcrdma_mr_get(struct rpcrdma_xprt *r_xprt) return NULL; } -static void -__rpcrdma_mr_put(struct rpcrdma_buffer *buf, struct rpcrdma_mr *mr) -{ - spin_lock(&buf->rb_mrlock); - rpcrdma_mr_push(mr, &buf->rb_mrs); - spin_unlock(&buf->rb_mrlock); -} - -/** - * rpcrdma_mr_put - Release an rpcrdma_mr object - * @mr: object to release - * - */ -void -rpcrdma_mr_put(struct rpcrdma_mr *mr) -{ - __rpcrdma_mr_put(&mr->mr_xprt->rx_buf, mr); -} - /** - * rpcrdma_mr_unmap_and_put - DMA unmap an MR and release it - * @mr: object to release + * rpcrdma_mr_put - DMA unmap an MR and release it + * @mr: MR to release * */ -void -rpcrdma_mr_unmap_and_put(struct rpcrdma_mr *mr) +void rpcrdma_mr_put(struct rpcrdma_mr *mr) { struct rpcrdma_xprt *r_xprt = mr->mr_xprt; + struct rpcrdma_buffer *buf = &r_xprt->rx_buf; if (mr->mr_dir != DMA_NONE) { trace_xprtrdma_mr_unmap(mr); @@ -1268,7 +1249,10 @@ rpcrdma_mr_unmap_and_put(struct rpcrdma_mr *mr) mr->mr_sg, mr->mr_nents, mr->mr_dir); mr->mr_dir = DMA_NONE; } - __rpcrdma_mr_put(&r_xprt->rx_buf, mr); + + spin_lock(&buf->rb_mrlock); + rpcrdma_mr_push(mr, &buf->rb_mrs); + spin_unlock(&buf->rb_mrlock); } /** diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h index 9663b8ddd733..3e0839c2cda2 100644 --- a/net/sunrpc/xprtrdma/xprt_rdma.h +++ b/net/sunrpc/xprtrdma/xprt_rdma.h @@ -485,7 +485,6 @@ struct rpcrdma_sendctx *rpcrdma_sendctx_get_locked(struct rpcrdma_xprt *r_xprt); struct rpcrdma_mr *rpcrdma_mr_get(struct rpcrdma_xprt *r_xprt); void rpcrdma_mr_put(struct rpcrdma_mr *mr); -void rpcrdma_mr_unmap_and_put(struct rpcrdma_mr *mr); static inline void rpcrdma_mr_recycle(struct rpcrdma_mr *mr)