Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp623718img; Fri, 22 Mar 2019 05:22:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqztm/V9NOieUWCNAn2zrm0GFEElWP8dvqo9A4Rf69twwehdEqg7fBUkwz4sQ6xZcje2JGe+ X-Received: by 2002:a63:9a4a:: with SMTP id e10mr8336437pgo.366.1553257353453; Fri, 22 Mar 2019 05:22:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553257353; cv=none; d=google.com; s=arc-20160816; b=D56kj8jHJfXloZKD8MXXYZiijowdAbN1+kpr2dcJP+mgCjKF/rQ07qF9qKHASToqpk CvZ5smNvDIxkuNGgNBFatm3aIhmXBSgo+aN1FwLvfd6Lpduyf9/1r9AP3cGe75KquRcS OKF45lqjWp4biFVG8t+ceyqGnPwIur04EdVgEyCnHnwEa6wDicTjp/AoOs3UtZvZRMSU rSWMietvDDml1k05wrkorQlwWkk7XOcvatZxSk56VyNpPP1nOWVUqI2wLYJ/sL9kGutj vMrEJvYCpeE+wl0fGPLf4o/wuiKY+3s/NSSIvcjigwPixJO/zjSQhrVCo1aK+W8NaJeA C/Rw== 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:subject:cc:to :from:dkim-signature; bh=i8VdmvTIgyupiCDOlh8PVrhwsk+92wupENXkzWLzs8g=; b=Kz7kM2xrvbfHavDyTLw65bJHxZ2MF7eq8Hs9fi7QDbb3DKlrvRMLvwMta+G8/SvOHY WUNRnlHbtBlXKSc6l04PW7DYW98mkOmt5nZYT2XGOBIrFlECayzI3uifsGCE/GXIEq9g SgXnBnBiD/9lCQBiKSDWF8WLPTPuXiyvOXxuI0FGLgiBvm52G/qeNrpTuNf5t94O7wKk uGhy31XkTG73bDSzh/VXGQOwfYNsFbXsFQCbfkKAs1z+OVMm4AJLirp1k/atpvbjWClo eNuX+G+BOCZdSulF2LGK/BYT6m4dWWzJFcZKRI9o3yRz0I6bXjeQtu/7cMrzBe1Wc0/1 LbhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Z9p6hKUx; 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 k71si3955675pgd.583.2019.03.22.05.22.18; Fri, 22 Mar 2019 05:22:33 -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=@kernel.org header.s=default header.b=Z9p6hKUx; 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 S2390573AbfCVMVf (ORCPT + 99 others); Fri, 22 Mar 2019 08:21:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:60612 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389947AbfCVMVd (ORCPT ); Fri, 22 Mar 2019 08:21:33 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0A1EC2054F; Fri, 22 Mar 2019 12:21:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553257292; bh=/qTR7/AaYHC+/p0Km68e472lNuKoRschaJgSC3ei1Us=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z9p6hKUxcHX/j3mD+3Bohby0YEoGYcWE8RX2Mc4gJaITu0KhqD9Yj0/+sKqXixMnm st6uBQWj6e0fwl5F6ZQywCSmTKQkd/ywEMp9vuKYA7RTATFwIdTvR/rtqfdF9vXHCP jdnfwVuhKaRfXPEWsXcK/9avNboESExEnhaZmuHI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chris Tracy , "J. Bruce Fields" Subject: [PATCH 5.0 187/238] nfsd: fix performance-limiting session calculation Date: Fri, 22 Mar 2019 12:16:46 +0100 Message-Id: <20190322111309.278772150@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190322111258.383569278@linuxfoundation.org> References: <20190322111258.383569278@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ From: J. Bruce Fields commit c54f24e338ed2a35218f117a4a1afb5f9e2b4e64 upstream. We're unintentionally limiting the number of slots per nfsv4.1 session to 10. Often more than 10 simultaneous RPCs are needed for the best performance. This calculation was meant to prevent any one client from using up more than a third of the limit we set for total memory use across all clients and sessions. Instead, it's limiting the client to a third of the maximum for a single session. Fix this. Reported-by: Chris Tracy Cc: stable@vger.kernel.org Fixes: de766e570413 "nfsd: give out fewer session slots as limit approaches" Signed-off-by: J. Bruce Fields Signed-off-by: Greg Kroah-Hartman --- fs/nfsd/nfs4state.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1544,16 +1544,16 @@ static u32 nfsd4_get_drc_mem(struct nfsd { u32 slotsize = slot_bytes(ca); u32 num = ca->maxreqs; - int avail; + unsigned long avail, total_avail; spin_lock(&nfsd_drc_lock); - avail = min((unsigned long)NFSD_MAX_MEM_PER_SESSION, - nfsd_drc_max_mem - nfsd_drc_mem_used); + total_avail = nfsd_drc_max_mem - nfsd_drc_mem_used; + avail = min((unsigned long)NFSD_MAX_MEM_PER_SESSION, total_avail); /* * Never use more than a third of the remaining memory, * unless it's the only way to give this client a slot: */ - avail = clamp_t(int, avail, slotsize, avail/3); + avail = clamp_t(int, avail, slotsize, total_avail/3); num = min_t(int, num, avail / slotsize); nfsd_drc_mem_used += num * slotsize; spin_unlock(&nfsd_drc_lock);