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 A0809C4167D for ; Tue, 12 Dec 2023 18:28:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 246816B0324; Tue, 12 Dec 2023 13:28:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D0986B0325; Tue, 12 Dec 2023 13:28:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 048666B0326; Tue, 12 Dec 2023 13:28:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E0FBC6B0324 for ; Tue, 12 Dec 2023 13:28:11 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A573D80AC5 for ; Tue, 12 Dec 2023 18:28:11 +0000 (UTC) X-FDA: 81559000782.22.509481D Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by imf17.hostedemail.com (Postfix) with ESMTP id A95C640002 for ; Tue, 12 Dec 2023 18:28:08 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=devkernel.io header.s=fm2 header.b=VBPVgbSF; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=Zzv9Fsfk; dmarc=none; spf=pass (imf17.hostedemail.com: domain of shr@devkernel.io designates 66.111.4.29 as permitted sender) smtp.mailfrom=shr@devkernel.io ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702405688; 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=ByMLCrgGmGDFrbIZSJUQUarY0bYPrEjGYeN84abVNZM=; b=y0hk8CREz+zNjKWankrOFYl1ATZ8ppV6JRhI1lOsegU7M0MSFU/LExZ/P0tJIEHpYQ7pkm WK9IYVFUL2q3W3V0kmQNz9Xze9Xox0zAuxt/D7YHSZAuemwTszPS63/9rVKxlGHpdkaUf3 CWi4yj0+5VOium7u85wDWs8zy3hG6bk= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=devkernel.io header.s=fm2 header.b=VBPVgbSF; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=Zzv9Fsfk; dmarc=none; spf=pass (imf17.hostedemail.com: domain of shr@devkernel.io designates 66.111.4.29 as permitted sender) smtp.mailfrom=shr@devkernel.io ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702405688; a=rsa-sha256; cv=none; b=FUs5OZCQlNkpQOYQ6ZZzfwPKBEPF8DGgFv97znjogQgGCeGf2hOfCWpApyRWNbyyap8kQR bh+VouwrqleomCalL92EKCZSvZu5OJosoEIDdYmYc0ibsiE05PwUWLAOO+KtYc+cY+qZ1E EV0dyVT1Je/Pw8rCDhjdW6kEn+SBMVE= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id F2FB55C03E7; Tue, 12 Dec 2023 13:28:07 -0500 (EST) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Tue, 12 Dec 2023 13:28:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=devkernel.io; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1702405687; x=1702492087; bh=ByMLCrgGmG DFrbIZSJUQUarY0bYPrEjGYeN84abVNZM=; b=VBPVgbSF6tXt6d5NnsWb3ygDa5 W2oOSvk32nPFLq2q5dwWDPpY64o8GckAPy6W57r2VJk/XaR2y0OKa9DLDUTjlhUp ZCKgvpeiECRTJTz/1G8YoAlmqiWzjVdq1ZxQWK02N+iSDiFtS7cOQzrzUIFOyvwZ LUF/8YxM7ZwJzyUaK/3Loqpsy+m/9Usuhcjhkd0SVzGeYZnCO3NVftlafy18Dp13 OlEqD0B8Hh4NML7p79ePIUYG9jEhjv1xb1riz1JSWna7kPb7ry89272plSjWi85P +0gcT7cBExKOr8W6P4jePqL5vW6N1JQ0Gom2rQgl2TCdSr21PTNeBNFG9TAQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1702405687; x=1702492087; bh=ByMLCrgGmGDFrbIZSJUQUarY0bYP rEjGYeN84abVNZM=; b=Zzv9FsfkJoJ6ek7dEdJxF3FSDy8LyHvcTHOO14MTxOU0 VoMRkSzPR6MG8fZRJVEQ1VhL9R4MjlB1wZbN9hCmIoZd+BMX0zFRyKWd9sJX2mtm BcsEeNQcQnBuYoxApnJDJB6UjcxAtSNHE+pZMNgrhe+u71X2+SqwH+sZNrvBM+u6 4mgIfw0xcpwHguO3hw5d86XwABgHZmLI/FaxphfThovDvtjeE6j3j1vEuZkkkYzI JGu8zS3SpZ/+vP/ZmNtcyB3newlgm+xKlma0Mgu+jXXT8UlnNSfAI0ACxHPg4O6u BxgJDGdye1Sq2ZLM35sfvUS7Ks5RI5rw9dWOd0DDuA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelgedguddutdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefofgggkfgjfhffhffvvefutgesthdtredtreertdenucfhrhhomhepfdfu thgvfhgrnhcutfhovghstghhfdcuoehshhhrseguvghvkhgvrhhnvghlrdhioheqnecugg ftrfgrthhtvghrnheplefgteffgfejtdelfeekgfetjefftdejgfdvudffiedtueevvdej gfevvdfgleetnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepshhhrhesuggvvhhkvghrnhgvlhdrihho X-ME-Proxy: Feedback-ID: i84614614:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 23E89B6008D; Tue, 12 Dec 2023 13:28:07 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-1283-g327e3ec917-fm-20231207.002-g327e3ec9 MIME-Version: 1.0 Message-Id: <2ce7945d-a3c0-4bc6-8713-a36281cb793e@app.fastmail.com> In-Reply-To: <2e22fe80-2280-4003-923d-8749fe85b81a@redhat.com> References: <20231204234906.1237478-1-shr@devkernel.io> <20231204234906.1237478-3-shr@devkernel.io> <2e22fe80-2280-4003-923d-8749fe85b81a@redhat.com> Date: Tue, 12 Dec 2023 10:27:46 -0800 From: "Stefan Roesch" To: "David Hildenbrand" , kernel-team@fb.com Cc: "Andrew Morton" , hannes@cmpxchg.org, riel@surriel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v3 2/4] mm/ksm: add sysfs knobs for advisor Content-Type: text/plain X-Rspamd-Queue-Id: A95C640002 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: jco6ce58b4otup19nqsf4z6bwtrkp43y X-HE-Tag: 1702405688-897945 X-HE-Meta: U2FsdGVkX1/q4aHKE9YpnmABa7uzKZl3lubG49gp1d4oQa6Pvl2BcYbX9Pia9m4XeuFuz0hVM/ULAlACriTr7XVRsOz6veY0K0LGk/I6D+KSHl8tau1HciFb5/WkFKFf5t3BnW5Fu1hh7q3EOuRszzyU2cDwCnCa+TMVgWnhPzvCwl2WnCUXRSLV9NmbyEyR0wvXiTE65Tiy/WWjY83gSyBfx6tSmc7N957QtGIeOuaJYLC+jqL935XKXIPpT4UFAuQjtcVyWIFtdiBomQOKS1wkmGIRVTouGIAYJovEamZqDjKANTIG+HgNt+bC0lSzaqClBr8a9Lvc0Y+9l2WzYkc/KlUy+G/ncemJXzn6me9Ct5Rhj4SHbCL7p2qkEqWWs/Cgk+EtDSh69Eh8Mo+O5jL/Rb7TtUXIdfqXPo+PAEmbWOKfqFY8dhy7ABAWD4Tp5HqrGpgE4ZanAtqn9t112UpvypUcf4xgPCAyHw52ZZB9zGt849tExYtpOGkdb7DGodYBjIgJEjb/jifoKR8DLE9Tf4vS6N6QUuNcWu+2FFhTclpC3A7xyxjxYxPWl/qy2U+8VYiUsaE+Lcb4GCCa1BFWIMeLdVbjWawLSc+i22mbcGnfQ9tqVfgymzagL2S8bSOZjkAqBko2S+0sGQ1DSwstElnPyLMuuqaWhEHFVnGgppgyQMYmNMsxPDb3fgVe+NVc7Ke0zECqjYEbWkks5RyZjyhQH1KV7w/fMb0e5N+BPQjJ6e3qozbwSpDf2BnB7qnaZBHpZHPZ6ISfE/Wr+60M1oqzs5S5npeSuDLa5I06awJHhnfX20JiyuI/zUgwAnn3eKHjIWGgltg4HguJRjYfNs0NOD3XxGgqSvSiYquzNd7Cb21ui+0jnIbCCyb68d5mUxcqWqYLgBC5jzaWFVS3ZQnftSEAjlRBqPhmkapGY9kRdu/qTqp2nme+9umY1bOWIjWHcgSTl7WF150 RXKZppcg dDkGsFCV/TfCW/I/t6NZ5UjFoSyMBcOapeZqap416BEATnFQT9O/c0uwMGPPjxZ+5ClYwiMBv73Rf4oxe5DY27yIvgmqqgTRGrhY9h6HOTZ1Ixg/1a4Mz2Tsh8RKW/EoZ++yr9fHQsYYWsxc7er61DNYpt0qEBoaHxGvw 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: On Tue, Dec 12, 2023, at 10:07 AM, David Hildenbrand wrote: > On 12.12.23 19:02, Stefan Roesch wrote: >> >> >> On Tue, Dec 12, 2023, at 5:45 AM, David Hildenbrand wrote: >>> On 05.12.23 00:49, Stefan Roesch wrote: >>>> This adds four new knobs for the KSM advisor to influence its behaviour. >>>> >>>> The knobs are: >>>> - advisor_mode: >>>> none: no advisor (default) >>>> scan-time: scan time advisor >>>> - advisor_max_cpu: 70 (default, cpu usage percent) >>>> - advisor_min_pages: 500 (default) >>>> - advisor_max_pages: 30000 (default) >>>> - advisor_target_scan_time: 200 (default in seconds) >>>> >>>> The new values will take effect on the next scan round. >>>> >>>> Signed-off-by: Stefan Roesch >>>> --- >>>> mm/ksm.c | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 127 insertions(+) >>>> >>>> diff --git a/mm/ksm.c b/mm/ksm.c >>>> index b27010fa2e946..18b7185bbc65b 100644 >>>> --- a/mm/ksm.c >>>> +++ b/mm/ksm.c >>>> @@ -3735,6 +3735,128 @@ static ssize_t smart_scan_store(struct kobject *kobj, >>>> } >>>> KSM_ATTR(smart_scan); >>>> >>>> +static ssize_t advisor_mode_show(struct kobject *kobj, >>>> + struct kobj_attribute *attr, char *buf) >>>> +{ >>>> + const char *output; >>>> + >>>> + if (ksm_advisor == KSM_ADVISOR_NONE) >>>> + output = "[none] scan-time"; >>>> + else if (ksm_advisor == KSM_ADVISOR_SCAN_TIME) >>>> + output = "none [scan-time]"; >>>> + >>>> + return sysfs_emit(buf, "%s\n", output); >>>> +} >>>> + >>>> +static ssize_t advisor_mode_store(struct kobject *kobj, >>>> + struct kobj_attribute *attr, const char *buf, >>>> + size_t count) >>>> +{ >>>> + if (sysfs_streq("scan-time", buf)) >>>> + ksm_advisor = KSM_ADVISOR_SCAN_TIME; >>>> + else if (sysfs_streq("none", buf)) >>>> + ksm_advisor = KSM_ADVISOR_NONE; >>>> + else >>>> + return -EINVAL; >>>> + >>>> + /* Set advisor default values */ >>>> + init_advisor(); >>> >>> Is the "init_advisor()" really required? >>> >> >> The init_advisor is required for the following scenario: >> - advisor is used >> - advisor is turned off >> - pages_to_scan is used and run for some time >> - advisor is turned on again >> ==> Advisor would start with two high values for the first calculation > > Can't set_advisor_defaults() handle that? > Yes, I can move the advisor_ctx = (const struct advisor_ctx){ 0 }; into set_advisor_defaults(). > -- > Cheers, > > David / dhildenb