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 6CC91C61D9D for ; Wed, 22 Nov 2023 17:42:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 00E716B0619; Wed, 22 Nov 2023 12:42:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EFF676B061A; Wed, 22 Nov 2023 12:42:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC6BB6B061B; Wed, 22 Nov 2023 12:42:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id CEAAE6B0619 for ; Wed, 22 Nov 2023 12:42:01 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9F6C4120C72 for ; Wed, 22 Nov 2023 17:42:01 +0000 (UTC) X-FDA: 81486308442.23.6CE67FB Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19]) by imf03.hostedemail.com (Postfix) with ESMTP id 7A0AC20008 for ; Wed, 22 Nov 2023 17:41:59 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=devkernel.io header.s=fm2 header.b=mecjN16j; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=1ahuRQDZ; dmarc=none; spf=pass (imf03.hostedemail.com: domain of shr@devkernel.io designates 64.147.123.19 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=1700674919; 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=ySFRnjVXIn+mbgngaY9ZSCV315yJK2CgStdUpd2vf9c=; b=crRLjMfg1BMGI5dsKnzFjtEG7fjinKMXNIJd2INVKNFQWHd0bitR5yO3eMtd1tIkDfLIND fxxchcqoQmh1Abth023NYd6QUqFlq/qg5fJhtRNBONURF+HrzCCdwNdPt3nsuJwEjzsfFY AdcGiTqXe9ChYI7liGBywD9Ux98WN0I= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=devkernel.io header.s=fm2 header.b=mecjN16j; dkim=pass header.d=messagingengine.com header.s=fm1 header.b=1ahuRQDZ; dmarc=none; spf=pass (imf03.hostedemail.com: domain of shr@devkernel.io designates 64.147.123.19 as permitted sender) smtp.mailfrom=shr@devkernel.io ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700674919; a=rsa-sha256; cv=none; b=T+JkdYY3aNNc7h73ypgdPpMiyhu9BMF1QinOfuXndlVrnTm0JcUlz0ZtYGGzH3rzbMYB5p rBIbNp3IUEFcLLIUg2tlSzvqP41Wuzqi9po2ZdNk66biG4RtGORMTKlMBJt4VQ3X8orkU0 SMaGjUP0XwHaJOQ/EJq5j07j2uCWg1s= Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 81ED03200AAB; Wed, 22 Nov 2023 12:41:57 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Wed, 22 Nov 2023 12:41:58 -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:sender :subject:subject:to:to; s=fm2; t=1700674917; x=1700761317; bh=yS FRnjVXIn+mbgngaY9ZSCV315yJK2CgStdUpd2vf9c=; b=mecjN16jsUyEDNK8LN YJLDmsYwT0YrpMgokzQbmPzkdtogNjHbqHYSmZlFtbHd3Rt69TskDvXyDTcEruIp /cds067BfaGr5e9CXiJs9EvgojAdzJmpNQgFU5wCFB35ravobaEtpF2pMgFd64Ab oq1lsoYhPESycURCNiwDRUmZF70Y46rbzPHsN03pBwzOJLud5NHzPhcsIoc+qxP2 xW0fRe0InPoN3yJAMwNtivIYw2TOKdVwZn0jkCuG1zwi0G6enAPOysOX9grJTC3f We3i8HZIDI1YGxu5wE3XXGRNDz9MW17zcyJvHKkcTReLUuq/wYstxjYhcD1/qF8m Jphw== 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:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1700674917; x=1700761317; bh=ySFRnjVXIn+mb gngaY9ZSCV315yJK2CgStdUpd2vf9c=; b=1ahuRQDZnBXsgsS05WBrfYgD7IJWe fu2h/8MRZM/gsebqOGAbh4xlxttUHZOgPkepUpzN7p+gDkZqTOEBxAg1z1rgPxgf 1KE6ZEPG3i3TJZaclmgdOr4a9CzndeMSadQAAveZTngHtKUc1187HwylFmTACd5i OBlQyz4kToABKZD0LYMifnvxsTkUtHEgJuqZ0WighKuRydvtCZ8k1EGNHcVwFMgM i2D8S+3z58xcPFMRcMkoc5FuY+ICr+dxZPSyD1DihAXJPSpPG+N/sXi+B5euRPs3 Gjyh8e9wia+PGLq2vKJ8ueTMkeAktQh1tgeiAUPk+CCAxAMLDLqQJ6fgg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudehuddguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpehffgfhvfevufffjgfkgggtsehttdertddtredtnecuhfhrohhmpefuthgv fhgrnhcutfhovghstghhuceoshhhrhesuggvvhhkvghrnhgvlhdrihhoqeenucggtffrrg htthgvrhhnpeevlefggffhheduiedtheejveehtdfhtedvhfeludetvdegieekgeeggfdu geeutdenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpe hshhhrseguvghvkhgvrhhnvghlrdhioh X-ME-Proxy: Feedback-ID: i84614614:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 22 Nov 2023 12:41:53 -0500 (EST) References: <20231028000945.2428830-1-shr@devkernel.io> <20231028000945.2428830-3-shr@devkernel.io> User-agent: mu4e 1.10.3; emacs 29.1 From: Stefan Roesch To: David Hildenbrand Cc: kernel-team@fb.com, akpm@linux-foundation.org, hannes@cmpxchg.org, riel@surriel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2 2/4] mm/ksm: add sysfs knobs for advisor Date: Wed, 22 Nov 2023 09:41:16 -0800 In-reply-to: Message-ID: <87y1epr8gx.fsf@devkernel.io> MIME-Version: 1.0 Content-Type: text/plain X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7A0AC20008 X-Stat-Signature: jt8t3acmewbnhzqdajb5s4nhm7mntky3 X-HE-Tag: 1700674919-644227 X-HE-Meta: U2FsdGVkX18vDWKmv9EWu2w03gMo9xURE0QKBTJpIYO0+Br8CqheUMla5YcQzWBMlWSx6Me4dktISYru++Web+4Jn68c+AMGMZni0JvWdYtUNeTbyXEoj0c1raO4X6B6D7dUeT8pIOLYicVUtiTYht/oF10mn6XDhO33x61DoiNOhAGwYLva8DwJcq1kEu6d9lDcjx+bknYHsP1MJH6RR7ijsNprWQLENnf9qjDGlfdc5CNH4zlkGotDxOLV9WvXgeXwW+JSbBQJLayysfEMQjrTcLgeW6b4u0RBWegBluLuUdActAG17WlxOF20YPy4EQXGbsA1PJPm7kDrcuxxbF0nrFYUeDFLC9sGyAi+coaLWlMZHPCRlYHKjDi74MCyhwhZvPNecnH2eqg5HVNFGjKL/E1Otl6Zksnn95OrazfS6g3CyfdEJh9aqEKlCL/s9aR+rZ/jMgobzMJHJFK0ntwPQ1mJ1JWtwKjyP6oyEKAbncyfNatOgUeWQo3TYAygcthz9KDkD1VHhCZFc9EoxeXROts6v46dGkUrfz+Upu+68VSWN5b5eVUdEk3T4O8NSUegSGc56wE95UHkOGC2UhaKtGjFJFPxJrdAdOmeuI4lzGkjiWuf9Y2l4kvX+WOuPinT5ZOX9wr19VjPjcpvYeqd3UYUvHGj6oKLHKRhGKvgI4V6ddKHIzE3ikOCI0RbcDnQ4ltCuRYyILeqqbxjHUVv8ZdZHOL2h6r0o8vOvnGOUBUdSyuiwDyTxeo/DE6HD1vstPhvO4Uu3jGsjm0k4zB+7h4BURpnQjV51BRifu5/aLAekb05o/N3HUVLMYxYFrB49ZBBeb2OTOZKp6qzp9fS6mK6l5QESpB/nAI+Y/hGZTRygcmWm5zXL7gyOGLHk/6Qe94vPnYpalNgjnl2nVu8PWQdKgcHUaTJ9DUk9TXUnODH8hHjHeLb8K2U4N/s5ffYgUn0+3MwTX3VLtj wHrubJOa HfgrRVvKwgJ+zOV+ZUid+jPVYGIFABrMkMjjguC+IRKfIOGZOgq1P3IEg8Tt+WA79TIokGHdr4UD6fBSi/u0sJAaUYE4Qd4eOq+jrzPgJiTrEltT6LRxKNCB55a1hm11ZavmjXeooYA76jFeFsbhBHAVF1Jr9MMStNnr0XlrbEIoe6zcH+u7Y2LzAeIFlEmUjXvFamNsXeaiUhBwGZcoqkBeHWm0hiWprYPwG3vdHxP9m4n8= 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: David Hildenbrand writes: > On 28.10.23 02:09, Stefan Roesch wrote: >> This adds four new knobs for the KSM advisor to influence its behaviour. >> The knobs are: >> - advisor_mode: >> 0: no advisor (default) >> 1: scan time advisor >> - advisor_min_cpu: 15 (default, cpu usage percent) >> - 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 | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 154 insertions(+) >> diff --git a/mm/ksm.c b/mm/ksm.c >> index e18fecfb359d..042ecaeb0beb 100644 >> --- a/mm/ksm.c >> +++ b/mm/ksm.c >> @@ -351,6 +351,14 @@ static void init_advisor(void) >> advisor_ctx.cpu_time = 0; >> } > > > [...] > >> * Use previous scan time if available, otherwise use current scan time as an >> * approximation for the previous scan time. >> @@ -3719,6 +3727,146 @@ 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) >> +{ >> + return sysfs_emit(buf, "%u\n", ksm_advisor); >> +} >> + >> +static ssize_t advisor_mode_store(struct kobject *kobj, >> + struct kobj_attribute *attr, const char *buf, >> + size_t count) >> +{ >> + unsigned int mode; >> + int err; >> + >> + err = kstrtouint(buf, 10, &mode); >> + if (err) >> + return -EINVAL; >> + if (mode > KSM_ADVISOR_LAST) >> + return -EINVAL; >> + >> + /* Set advisor default values */ >> + ksm_advisor = mode; >> + init_advisor(); >> + set_advisor_defaults(); >> + >> + return count; > > Can we instead use human-readable strings? > > "none" and "scan-time" should be clearer. > I'll change the interface to use strings instead of numbers.