Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp657544pxf; Wed, 31 Mar 2021 12:37:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfcqDrGG32suD9UwhR14gKCUJk1E7ODZKFZEQ/nTYf3K4uUyjll3X/87cm5vCMIHDYIdx3 X-Received: by 2002:a17:907:7014:: with SMTP id wr20mr5331005ejb.179.1617219444105; Wed, 31 Mar 2021 12:37:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617219444; cv=none; d=google.com; s=arc-20160816; b=c4z9OF/BZIGCkt4JYDoO/PwfPnYoXh3pLfuNRLP8csMpUVf/d7t5QvtLqYFqX/LNL6 kLVb3zpDMNKRwHuhTMFiNY+7L4rUwEyIOWyOOOKZt+Vo5gwNnigRpqJYft1hHuOo8ctL J4i2/D3ob+SNWq6n/+diMYH1WwV59wkbWnSGg34V4GzcwakBskOyIbBfgcCynTpIFSlJ 51r4pMqBHXpfdW4jfM3XBPLV30ofG0tWO+sFjBgsogMl+Qep5cesGCBS4ObOTBVHClUW NP5bnARwN1K7hfpwU6Czab8V1AW4DNOOg5IB7tb8Xzli95M9GG64Z42AZ1CiFJUSMbTX fgzw== 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=ki3fEl1GbpOatVatkQJuh1wML5/FB3nlQ0et5FgTW5Y=; b=kcCtxxchXfqhjiVxUAEOF1Q5vUmknDuhIdzico9eNFAii6gAdsFuuB/aiRzHOBcwka aQwVcVvhVzSWQpE2NEKbOJCjAHGb1wIoNnP/bw/fzKsrYcTVY9J1B7jF8fX3KmZsJoqe VWzV4OeWU3VfWPRbcUZUJi9ZyRJLfBGvDeEeujuAmSuytE3cUeEcDyGhv8ELTCoSoLsg 1piZA4yRceq/FKwXuJvxj73GiloVETlPtR4PkmWARKYDRz5NAEb854jpiX83KLwhuCWk pHB/l2IRz9KxQkIBaMgcm9zK7WIDTRFkwZjmbvggaeumOMW+2gwosl8Hhn+cab3PZSaz R2pg== 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 t4si2330362ejf.475.2021.03.31.12.37.00; Wed, 31 Mar 2021 12:37:24 -0700 (PDT) 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 S236147AbhCaTg1 (ORCPT + 99 others); Wed, 31 Mar 2021 15:36:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:44430 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235953AbhCaTgG (ORCPT ); Wed, 31 Mar 2021 15:36:06 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DDF5B6100C; Wed, 31 Mar 2021 19:36:05 +0000 (UTC) Subject: [PATCH v1 1/8] xprtrdma: Avoid Receive Queue wrapping From: Chuck Lever To: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org Date: Wed, 31 Mar 2021 15:36:05 -0400 Message-ID: <161721936504.515226.14877637433211331378.stgit@manet.1015granger.net> In-Reply-To: <161721926778.515226.9805598788670386587.stgit@manet.1015granger.net> References: <161721926778.515226.9805598788670386587.stgit@manet.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 Commit e340c2d6ef2a ("xprtrdma: Reduce the doorbell rate (Receive)") increased the number of Receive WRs that are posted by the client, but did not increase the size of the Receive Queue allocated during transport set-up. This is usually not an issue because RPCRDMA_BACKWARD_WRS is defined as (32) when SUNRPC_BACKCHANNEL is defined. In cases where it isn't, there is a real risk of Receive Queue wrapping. Fixes: e340c2d6ef2a ("xprtrdma: Reduce the doorbell rate (Receive)") Signed-off-by: Chuck Lever --- net/sunrpc/xprtrdma/frwr_ops.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/sunrpc/xprtrdma/frwr_ops.c b/net/sunrpc/xprtrdma/frwr_ops.c index 766a1048a48a..132df9b59ab4 100644 --- a/net/sunrpc/xprtrdma/frwr_ops.c +++ b/net/sunrpc/xprtrdma/frwr_ops.c @@ -257,6 +257,7 @@ int frwr_query_device(struct rpcrdma_ep *ep, const struct ib_device *device) ep->re_attr.cap.max_send_wr += 1; /* for ib_drain_sq */ ep->re_attr.cap.max_recv_wr = ep->re_max_requests; ep->re_attr.cap.max_recv_wr += RPCRDMA_BACKWARD_WRS; + ep->re_attr.cap.max_recv_wr += RPCRDMA_MAX_RECV_BATCH; ep->re_attr.cap.max_recv_wr += 1; /* for ib_drain_rq */ ep->re_max_rdma_segs =