From patchwork Wed Jan 17 16:14:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josh Poimboeuf X-Patchwork-Id: 13521989 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A96DAC47258 for ; Wed, 17 Jan 2024 16:15:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A1E76B0108; Wed, 17 Jan 2024 11:15:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0206C6B010F; Wed, 17 Jan 2024 11:15:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C4F856B0109; Wed, 17 Jan 2024 11:15:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A32E26B0107 for ; Wed, 17 Jan 2024 11:15:14 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 74D001A13DE for ; Wed, 17 Jan 2024 16:15:14 +0000 (UTC) X-FDA: 81689302548.02.0941A0A Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf08.hostedemail.com (Postfix) with ESMTP id 64D0F16000B for ; Wed, 17 Jan 2024 16:15:12 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GfNGTXOD; spf=pass (imf08.hostedemail.com: domain of jpoimboe@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jpoimboe@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705508112; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DMIwppfDFtVsVkhkJAC34YqIuC0oTG/FedMP6I7fc6M=; b=TAc5ZCKIELY45smNUCSo/RjdYZJbEosRUy957p3SeRjdr8I0vgXfSnyg9vZYfH6VzWSEF4 KHyNnqjhmVMvQKJY7wor2n6qqbfRt3aEJqUvPVuy+weg/n6JINBEIEaGTqomKJnEa6aY6T WJlXZpn4rHzljuPPF4qOGuup0pStctY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705508112; a=rsa-sha256; cv=none; b=Dk9ntC25ujpqn5qiM9C0A+S3DgjbrbMgowzr01DRee4oDXUQiwar/Fe8QpJ8K8aDU5RVfQ aA/vi4ycN5LTxy0w/UxCmEIAmsl8I+uLaCgrFYlVacs14XG2Tks6D5Ko6zJmt06KRBsR3B GR44sfJPXhSebY888gfVxSc8hHqcvig= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GfNGTXOD; spf=pass (imf08.hostedemail.com: domain of jpoimboe@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jpoimboe@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 46532CE1C9E; Wed, 17 Jan 2024 16:15:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2FCCFC433A6; Wed, 17 Jan 2024 16:15:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1705508108; bh=9hto33msnD5StAxQOT593RifYAulOEFb566w3+Gvz0Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GfNGTXODLFiLsBVDsLJVvkfO5IV9m3xe3V1IyY9QDAunprrLmIybo1nR4EASgkYNV ZxPQIlNRhxCRwAxYGZDieP3mteI7PlVqT6M6G9/8gAEmGLFszo/GkHXoVWxEhGCbWB GfAdkBo2+ABWF5lVOu8hwXqwdmT5VxzE/6yKc717wIJmBUW6jziYmNUNHzx6b4t2EG y0+BwYYFdCGNNt9/M+0W+hwybVBy5e4GnXZisSfO8fNh6gu7uDHmNFncKLj9IOS9av RSGF7dBcaoqCcC/8kIJ8oaGkf89HJAPGrnkfu1IZJpIDSD/joHHVrBLAX3SfSL/BGF v7PL8XppMBEmg== From: Josh Poimboeuf To: Linus Torvalds , Jeff Layton , Chuck Lever , Shakeel Butt , Roman Gushchin , Johannes Weiner , Michal Hocko Cc: linux-kernel@vger.kernel.org, Jens Axboe , Tejun Heo , Vasily Averin , Michal Koutny , Waiman Long , Muchun Song , Jiri Kosina , cgroups@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH RFC 2/4] fs/locks: Add CONFIG_FLOCK_ACCOUNTING Date: Wed, 17 Jan 2024 08:14:44 -0800 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 X-Stat-Signature: 9x58nyfo11u15yujcux1baq78ai8hyuz X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 64D0F16000B X-Rspam-User: X-HE-Tag: 1705508111-17343 X-HE-Meta: U2FsdGVkX18+t9nOtIgwyWy1BG7a6lxOCoGhHlAjHzjVSUh7v1XwXbtRhgpN6Dz0tKjsCGnD86QRLLG1mPdA/FyPA+oK0bn5MrZqihFsu0p6UCAz43V9sbCqJQJ4qu5P/+NeCcd48Q8HUet2Mme0RY8smvK+EMStAu9k8GJDkTYv5G0z0+kUxDRZuNeuMU3uuPysEnzQqo140Cy+9ZaJvcUNOl7p+5uvA3zkTRVGR4CbRcL4TLCLTpXPRrWUzgmA9SQyBH5s9QiiWvU5btYxq6yLkQNlybH1h2EN2DJohujCktpIiEVBaEcC98y4LL9haV6a9weS/IdwWkgkQoNp42CMavnUGujDJj1oy6wh6RiLbsyK6wIPn0aB8H3tYmLuIhia4TzxAKMKuLGnO5z0qk/6ZxukdCFEroF+IwsqWYiHCqZv6tMU+mhctauuBBSqGVOBKiG1j9SS9twNex9py3BH1gbCamqoxpvDQfXd5yVQi+XN/xdJbZnaNXWXLyHiFCrCNTAvhNoWtqU4IueB1KJEb9O07aqbyUQECj++uhksSIt1HuNNmw4y7TcrC9XuBfqf8n/tJtYDXbFEomjkVarOkuLHwIR0wy1z2NXWdmxWesB45KfdznDJtpskDN+1VEvYDBhlCJab4C7a0XZlHE0jf11KjQD66YKun6tWDq7l2Xg051A7qmS6kUYRTI+/GHehGOuaS9IZqHYs8Ys+P8wZ55G5KVjvdQeu5W2a4/6izKrlYxwcAK7Zz1+kVUBiReDHtOV00xOtjpUdmRwppJrr5bLkJ1vxjItoBGN2EM0zYqvTdYgIynTC74yh9LD759xgqSQK1t8ajKFe+01BNx471BmkbPb+je00Qk4RPTLA5uKHeRk7MFTV0A5zUq0I/5tFqcP6gqlg9lzVeA1s4X4HDfy88zw0tcjYhdW8MOoiDkvSN5nC+ei1ntpsa6BkJtNKkYLtlBIh5jesyLs 3/aBldl5 UR3SHL60g9RQgAWpidHENiLzCw/fWEfJPxajeBkxg4IWU8F/GIgvVOgC30B1zHFaAZ5mbC2ttjv+kFPrvlErPv7/bAxgmYHPm2z926WA24ZajMZe66iQpI7b/WUD4JKDb9OLiCJCrZgS3Vu4dwGDDR0N+JTMMZb6HaJ6FGUnrqJG9fSWQcIzrEGNzYNzh8/rvaDQcjFiLswkXvTCICg6LzbaNmC8/PQiLAs9q4FvT8LEQUAkRsJrFduPrHcTT7iGnEAtjj3sBPYnSzNsmce7lnaso3nP2xMiWmYs3 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Allow flock cache accounting to be disabled at build time. Signed-off-by: Josh Poimboeuf --- fs/Kconfig | 15 +++++++++++++++ fs/locks.c | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/fs/Kconfig b/fs/Kconfig index a3159831ba98..591f54a03059 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -129,6 +129,21 @@ config FILE_LOCKING for filesystems like NFS and for the flock() system call. Disabling this option saves about 11k. +config FLOCK_ACCOUNTING + bool "Enable kernel memory accounting for file locks" if EXPERT + depends on FILE_LOCKING + default y + help + This option enables kernel memory accounting for file locks. This + prevents task groups from exceeding their memcg allocation limits. + However, it may cause slowdowns in the flock() system call. + + Disabling this option is not recommended as it may allow a rogue task + to DoS the system by forcing the kernel to allocate memory beyond the + task group's memcg limits. + + If unsure, say Y. + source "fs/crypto/Kconfig" source "fs/verity/Kconfig" diff --git a/fs/locks.c b/fs/locks.c index 235ac56c557d..e2799a18c4e8 100644 --- a/fs/locks.c +++ b/fs/locks.c @@ -2905,7 +2905,7 @@ static int __init proc_locks_init(void) fs_initcall(proc_locks_init); #endif -static bool flock_accounting __ro_after_init = true; +static bool flock_accounting __ro_after_init = IS_ENABLED(CONFIG_FLOCK_ACCOUNTING); static int __init flock_accounting_cmdline(char *str) {