Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp539815pxb; Thu, 21 Jan 2021 13:19:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJyM41XxxftUvga5wNWQMuFtqv+B8gos9yNxgUtqFkBtLr1mvYMFhb1/stP9e2iZUacdC9jK X-Received: by 2002:a50:d8c4:: with SMTP id y4mr828993edj.261.1611263968338; Thu, 21 Jan 2021 13:19:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611263968; cv=none; d=google.com; s=arc-20160816; b=RdJX3vRm45AWu0GtkLWPCMm8lGM4K7P3syLT6yaaopBsE8s6l4DYOYlXrOqmJDWVja DA2BjTn0rKG5mviCAybfgWjxaeGjrC+MpZ566gkwAbSOI0VY+XBshGZeUG1NFGclUGjk Di9bcqOmZcQfLKdIrD9ngXSdfytJZhrDhkcxIqMtlCcH9gOMudQVCCMNbqBhQCkdWvmn Na++w/zqo53+q3iqYpmD9iTdt4i/hEpFeie2MO3S6d6qH2Lc1vk6nM21GEc6H1sPONP6 PXJMzxFhOxb01QxqN3Ki3jnDnnm8JwXlRjZTnH2jEp91D5SHZUV77N2lvpAKu1t5ZZcK YsRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:to:from:subject; bh=BJguxU8IMyhs5UOEPlVGZ3dOEwTAIMqysxFZjKWyAew=; b=FRrU/8xtedVHkL81YJMahVkgPxFNp3ixzJGhgw9MFSsGNmrExxy0H51uDB4Dylay6K ZSTI3+L42TFGUnc1wvmwqpSaH+tBlBIVP3V8eK2VYSs2JeaOgD+2kLNyopUFlzE+WYFP qYqU6i7gCcEKFY+1cxjSHx27mWcqcJYKUck/uVhKxa36GnxWmxfteZVSHrcNJP+oVPxh RZJL5nI4SbHwTu9PvWyZMwD7FBuWNJmkv0cNPpPRojQq4jRHhe068Dl+858nUfsghXPj gHEXQDaHEGfijqj/bielh1sTb1Y3I8sVypPiiy6pKyirO+dNon0JthujvjERJF1kA6lq XjXA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id g19si888303ejf.66.2021.01.21.13.18.58; Thu, 21 Jan 2021 13:19:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 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 S1726414AbhAUVSi (ORCPT + 99 others); Thu, 21 Jan 2021 16:18:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:32884 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726567AbhAUUyt (ORCPT ); Thu, 21 Jan 2021 15:54:49 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3D24523A5D; Thu, 21 Jan 2021 20:53:13 +0000 (UTC) Subject: [PATCH v1 2/2] svcrdma: DMA-sync the receive buffer in svc_rdma_recvfrom() From: Chuck Lever To: linux-nfs@vger.kernel.org, linux-rdma@vger.kernel.org Date: Thu, 21 Jan 2021 15:53:12 -0500 Message-ID: <161126239239.8979.7995314438640511469.stgit@klimt.1015granger.net> In-Reply-To: <161126216710.8979.7145432546367265892.stgit@klimt.1015granger.net> References: <161126216710.8979.7145432546367265892.stgit@klimt.1015granger.net> User-Agent: StGit/0.23-29-ga622f1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org The Receive completion handler doesn't look at the contents of the Receive buffer. The DMA sync isn't terribly expensive but it's one less thing that needs to be done by the Receive completion handler, which is single-threaded (per svc_xprt). This helps scalability. Signed-off-by: Chuck Lever --- net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c index ab0b7e9777bc..6d28f23ceb35 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c @@ -342,9 +342,6 @@ static void svc_rdma_wc_receive(struct ib_cq *cq, struct ib_wc *wc) /* All wc fields are now known to be valid */ ctxt->rc_byte_len = wc->byte_len; - ib_dma_sync_single_for_cpu(rdma->sc_pd->device, - ctxt->rc_recv_sge.addr, - wc->byte_len, DMA_FROM_DEVICE); spin_lock(&rdma->sc_rq_dto_lock); list_add_tail(&ctxt->rc_list, &rdma->sc_rq_dto_q); @@ -851,6 +848,9 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp) spin_unlock(&rdma_xprt->sc_rq_dto_lock); percpu_counter_inc(&svcrdma_stat_recv); + ib_dma_sync_single_for_cpu(rdma_xprt->sc_pd->device, + ctxt->rc_recv_sge.addr, ctxt->rc_byte_len, + DMA_FROM_DEVICE); svc_rdma_build_arg_xdr(rqstp, ctxt); /* Prevent svc_xprt_release from releasing pages in rq_pages