Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp614429img; Fri, 22 Mar 2019 05:11:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqxZuPda81yv7GvMxB631+DASUyAJfQQAJrCGloggNxNQ/5NnxBgF2xNL/nzxI0gDL34OKZb X-Received: by 2002:a65:6148:: with SMTP id o8mr8670916pgv.442.1553256694754; Fri, 22 Mar 2019 05:11:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553256694; cv=none; d=google.com; s=arc-20160816; b=rAbqkKRxxSXyVTTh/ILRtNFNyAKZmpxE2yZVbxR2aapTJJ2QY6GNprTr/pw7dXt7cb AjgJuXRnYJpia4lDqIfqp14Xh2TI3UIw9NagvIZm2vyPM6r767HUVkc9TEnycFWnLeEW HfAV0g0jCpbvUZnPht0LICnwkhrIbS43lDj+RS76LuNPk/ygXVdpKXIdyrns3Crk9ZS9 3TWCD1bKEab5BqWi373tczQdUnM9zE3n8QYju2cEUVN4VugLKpSAZmzmNdtM0xcN/mEj 5n3UM9bs4iW1FZkdYo11uKRi0PDg1H6o+yQIDKxllDflSaIIwJy287+keHdoBOZLislb QrwQ== 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=sMLcmLOp+G7tKJ/DJyZbAG3Eq/6dS/NEMTNzOwNTMSg=; b=J3d1r9sLaBaivnDSRXqP8r9Cn7twscRYqyk1S567EWwNaAEqIiSEhx5z1GYv2vs5PI xjrH71HMexfKmwKq5iUBwVsmegmvUDlrRE3dxAignz1C5p238DO02PLdCao7MpW9fu9o /fd/1kwseFPyM1v15PKkbDhM1AnCqY+YxwbLJGMcQx9sK6orz85j3oiMk6Wvbf9A4o2Y m8q1mx44RwNRyOtmQYmGNx6zUcCO3KCgVLCPkS6zCcizCWA5eQtgVOB3LmHPPIV+0v87 9YHuzig6tDWoQf9hpTALFJgNkFSaN8EiZ2bu8N3MzzXel8cS6uXfXUP0RBMbcPHl5q65 mlZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="l/fJlEYt"; 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 i69si6941753plb.75.2019.03.22.05.11.19; Fri, 22 Mar 2019 05:11:34 -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="l/fJlEYt"; 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 S2389427AbfCVMK0 (ORCPT + 99 others); Fri, 22 Mar 2019 08:10:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:48712 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389408AbfCVMKR (ORCPT ); Fri, 22 Mar 2019 08:10:17 -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 7BE5D20830; Fri, 22 Mar 2019 12:10:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553256617; bh=Qal5UGXYrZXxPW+SVeVYlFIQoRcQTy9Elq3K67swYI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l/fJlEYtLXtECWdUXZoyTl+Pe5BRI9+texkF4AnjKVs1U/Rbh8w/nNf858HnW+uGI aKUtydoKSdqyAvNB37EntrRNXNIQQt1WO8uCW8ejdCv7gBHP1MaJVKWXH9jhHTiBdK v6vCNzkJMukT8UxigizW+dqJNdfu4TSozD/5iP8g= 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 4.19 243/280] nfsd: fix performance-limiting session calculation Date: Fri, 22 Mar 2019 12:16:36 +0100 Message-Id: <20190322111339.897437668@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190322111306.356185024@linuxfoundation.org> References: <20190322111306.356185024@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 4.19-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 @@ -1514,16 +1514,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);