From mboxrd@z Thu Jan 1 00:00:00 1970 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 06B6AC7619A for ; Wed, 5 Apr 2023 11:23:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 54A126B0071; Wed, 5 Apr 2023 07:23:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4F9716B0072; Wed, 5 Apr 2023 07:23:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C1DE6B0074; Wed, 5 Apr 2023 07:23:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2DE046B0071 for ; Wed, 5 Apr 2023 07:23:09 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D833B140D76 for ; Wed, 5 Apr 2023 11:23:08 +0000 (UTC) X-FDA: 80647100856.08.7726D5E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf08.hostedemail.com (Postfix) with ESMTP id 2600C160005 for ; Wed, 5 Apr 2023 11:23:06 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=rVa9heXB; spf=pass (imf08.hostedemail.com: domain of gregkh@linuxfoundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org; dmarc=pass (policy=none) header.from=linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680693787; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hm1NXlYuFrzJVFz0tGZflmmMnJzhgqcrh9B2vytr4V4=; b=SH8RIOIXmr3aWzv8MnxKfBnHLYVGQlCX4cIp1WfMvqas27s8ibQlrbeKsbOOsetgMC8i4y nx52nKghW5eh7m9YmASVvexKr1KtZmBj2jCBm5Lt5k0l7YUHS0CIrxTIY+0GIdNTMbWGlz 4s4mbkL6r93SKmyQZeJTrvrtuAxJIHk= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=rVa9heXB; spf=pass (imf08.hostedemail.com: domain of gregkh@linuxfoundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org; dmarc=pass (policy=none) header.from=linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680693787; a=rsa-sha256; cv=none; b=PLczFpZ6VNj57EwjiXW6XVs6CwGrmTY82M2H+l3hxRJ9HSrL3CiME4YLobEQ3b6Edzl0fK KouWW3bYtY9kKJWzZfnwojDEkI1EG9dbNdou7GomOHFznOAYQxgMM5TjCkVWxkzjwmRaqY WAsP6IvTuxWgNGzZEZPzeAgOmCEtBTo= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1A3A163C0F; Wed, 5 Apr 2023 11:23:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 04193C433D2; Wed, 5 Apr 2023 11:23:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1680693785; bh=gDUUhfjPhn4XPOrIvw2EMvXLAG1GTVGNJXbK0+5TDNc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=rVa9heXB1eA342juTZovSTdnzHubWyo1h5kIQ53SIguHSxzt5ZIqhbkEp+IzcTiaZ ne5xnwRo9jqJX6+d869rPjNoKrvmDLZiCkY+vZqCgzQwRW+1HF/T505o15bY7FlmRL +F2w1dqrtV21ogA9v8UpNyXAWJwWOOuyCpPzOf/o= Date: Wed, 5 Apr 2023 13:23:02 +0200 From: Greg KH To: Shaun Tancheff Cc: Johannes Weiner , Michal Hocko , Vladimir Davydov , Shaun Tancheff , Andrew Morton , cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH] memcg-v1: Enable setting memory min, low, high Message-ID: <2023040529-commodore-humongous-47c3@gregkh> References: <20230405110107.127156-1-shaun.tancheff@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230405110107.127156-1-shaun.tancheff@gmail.com> X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 2600C160005 X-Stat-Signature: o5t13t758m4j3ekh6csdtxkpqi3rpxfj X-Rspam-User: X-HE-Tag: 1680693786-484090 X-HE-Meta: U2FsdGVkX19PLybN4KT8zORw0zT3eJcTWc6vxgw94xjaAUA7hGfXkjIAszGx1lAyJ4ESUnXSKXEvLApurU9hZ+MOQzqkFTVU2DarKmcvf1MVMV3fPtJdEght9Z/vmVrjF6VfHnzCWa2tYOj6+tolilO7rYDrdKX48rK/S0kXMulTzBEOi+cEiHkfG30dQHvDkPL8buooj5Kaf5ye8zCZmbQr2UZXZd+Occ3YNQA0phCRaZvnDMDf8SzoWwH5HZuU/+yQMLDKfRF8gaX9QSYT8hB28Growr02+39du4reE/aL1ueBMouXu/qc2ObAorzuSWvwHrBrRIw4G0F7FNOtQjF1Barr6v0/j06YXaQVZ2PbwrSey1nVAKZWWT0EQeHNt6MTSnpkqhBxN9p0fmXYx2VcnoB7B2XOY3RA3eKt55p7nbvRgGpqISnrDt8i/q7w4SwHfR5qArRE7c2pv0lvsm0o6uTPJCwfGdzXhMP5RZZeGVMqWGF9l2OYmjYftBAU5nUZFYTV+nVW0XiYRsRJ873d1rcLsQ8PL16VSVaRLD824oYjz+TRAsdEr/hZ9KE+mojOV3/LRCMy9X/PVm+aR6ZRGldFIWKcHzMi4a7rDzh82jxUOd9EWDZ4CyHQL5zxKx9UQzVlTmdRQ/R+7XppzAjP7yJq2AHJ/mIBNhVTdDxQXxx+Q7FFXiou28KJ9YgasqR/muSVsaVVG5tupKliaEqvWm4HF4SNNMUWFC23TQRAZnMpBCicngiUQ7H9cLqUO9jZhLSnifAo7LBe9dpoC86wmvPOuPHhHjtWJKC4MVWDLDO5P2rMn7MNpF+wT+5+avbw2dgiC5DS5o27IEr928HUvz7UY0vfYFYuZzqjBHRH80kE/E42+EWMsT1nA9/kRGbbqoSowIm9AHCE8D8sMoE6xMQ9cGCHdoz6YdiGpgUx/ha/fBSZFExmxjeVFYg5shsAtXeUpOgXAcMexLK Ed5DnZLq BVpHCeqV7HndsHyxv1f9MPm4JK7K8hGXQz1moWwrXoIAfjAwJvKZkbrXlIdQUWwCwfSY6ylLVIi8MkWgYFz18YAlikSygmU3/IaoRrX7mAiU7QLsxoAyK0R8y0QCqJuaGOWfqhuB8vP2qQNv5QJNqun4waVKhuh7e3TSHrTQQFt9fZgQqmoyfOk30Of56suHiX2BHacYrvqvDRPTFXSfFeKkcIVXxwM2FuUfkv6xaJid1G1/iXVKmE+EFx/fw9H+FldCVvDBhzXIqyqjSZTf/4pReVVO6oZmXSJh5jBkuZd69Jyayplx/fysT2QQbadaZa3od7v/+DtO8eBlW3VUxnjELRQcCXurv7i1CANEQAaCSUYilkOvjK7/whYk/GeN7f3VvyHvspIB2JJ7yJlS4R2eIesaylS2EyKZUS7MbTueOxvYY8wf5XJ8tayxQKBwCVb6lyMHCZ5XXM81E048r7/qINnCO+t/EhrZWuerHQBKoy64= 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: On Wed, Apr 05, 2023 at 06:01:07PM +0700, Shaun Tancheff wrote: > From: Shaun Tancheff > > For users that are unable to update to memcg-v2 this > provides a method where memcg-v1 can more effectively > apply enough memory pressure to effectively throttle > filesystem I/O or otherwise minimize being memcg oom > killed at the expense of reduced performance. > > This patch extends the memcg-v1 legacy sysfs entries > with: > limit_in_bytes.min, limit_in_bytes.low and > limit_in_bytes.high > Since old software will need to be updated to take > advantage of the new files a secondary method > of setting min, low and high based on a percentage > of the limit is also provided. The percentages > are determined by module parameters. > > The available module parameters can be set at > kernel boot time, for example: > memcontrol.memcg_min=10 > memcontrol.memcg_low=30 > memcontrol.memcg_high=80 > > Would set min to 10%, low to 30% and high to 80% of > the value written to: > /sys/fs/cgroup/memory//memory.limit_in_bytes > > Signed-off-by: Shaun Tancheff > --- > v0: Initial hard coded limits by percent. > v1: Added sysfs access and module parameters for percent values to enable > v2: Fix 32-bit, remove need for missing __udivdi3 > mm/memcontrol.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 82 insertions(+), 1 deletion(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 2eee092f8f11..3cf8386f4f45 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -73,6 +73,18 @@ > > #include > > +static unsigned int memcg_v1_min_default_percent; > +module_param_named(memcg_min, memcg_v1_min_default_percent, uint, 0600); > +MODULE_PARM_DESC(memcg_min, "memcg v1 min default percent"); > + > +static unsigned int memcg_v1_low_default_percent; > +module_param_named(memcg_low, memcg_v1_low_default_percent, uint, 0600); > +MODULE_PARM_DESC(memcg_low, "memcg v1 low default percent"); > + > +static unsigned int memcg_v1_high_default_percent; > +module_param_named(memcg_high, memcg_v1_high_default_percent, uint, 0600); > +MODULE_PARM_DESC(memcg_high, "memcg v1 high default percent"); This is not the 1990's, why are you using module parameters for this? And this isn't a module, so why use module options, how are you supposed to set them? And you didn't document them anywhere? Also, why is this cc: stable? thanks, greg k-h