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 F3B75C369C2 for ; Sun, 20 Apr 2025 19:40:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8E4986B0010; Sun, 20 Apr 2025 15:40:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 86CBD6B0011; Sun, 20 Apr 2025 15:40:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F2496B0012; Sun, 20 Apr 2025 15:40:41 -0400 (EDT) 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 51DCA6B0010 for ; Sun, 20 Apr 2025 15:40:41 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 7E4811CA9CF for ; Sun, 20 Apr 2025 19:40:41 +0000 (UTC) X-FDA: 83355439482.30.9822C56 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf02.hostedemail.com (Postfix) with ESMTP id D497080005 for ; Sun, 20 Apr 2025 19:40:39 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=UXMItcxk; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf02.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745178039; a=rsa-sha256; cv=none; b=AGwRWq7UyHJrx3PqfxqtVJksXn7mjC2r5fffVn1LTsJLVYf3n/3L4CPgZZjwLFopXVT/NG DnQrC2b3qc/ncGEY1ho93zCxhfeq6abiJiJtqNFu4c8laFKg4ja7Ko4XZVaTAOJX/++ncH a1oxE3M4Bq8oluvlh3Po78ZEWkQfR/U= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=UXMItcxk; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf02.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745178039; 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=SpUVIwnoXmNbIRlVdQGgOvEgljNEvHY2XCYfv7Q906o=; b=soesvgpgKCR3NAjASvzy7+GL+IIUqy0uHKp8i1mCtFJ5yKa6oTEu7w3SMjuah/T1Bw6BSp HcdOkTWygWKui6Bs3MaJnnK8a0Q+Mxkm2KIvPlnplJsB0tIYUZ/4xJy1LrQbLQ8BihhXBo 1xPT6G7MjHISdgnZ6NcPc1u7FHucZCw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id F1B2CA4BA2A; Sun, 20 Apr 2025 19:35:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C0EBC4CEE2; Sun, 20 Apr 2025 19:40:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745178038; bh=YrnSVlsWWaNU8yWNre3Ssi6/DIgFSJQgBiB+f6Xdzok=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UXMItcxkOIFjk5OK458tYbEGtY1gX/42/4ZGXGr/wA5pulJ+2NH3vzZ8fdB7AM6Yp MAHbz3qV6kUE2tUn6ArpWR5aWvRmINKHWe6pVRa3GIutCrLlVdH4Prymjqq7+zK4Pl R/bk/60BHJ1AWa51BCXtw/CTSAQeKE4YXR3jGCbYIK+omzf2OVUs5a0s8zqwhnT5YX ApVrrplK1q9jHQi5xP/MYdNK/zq5XNDf9BjzBJkhd2alTGghoWJCylsbn7WJI/GH0O d6D8UBT6rrd1005l+BquSXGxpwq5/OHN0dS+HJmmetRPvM6YnsP34Ym4NnNr2uHPXQ teATEL+h9kItA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 2/7] mm/damon/sysfs-schemes: implement file for quota goal nid parameter Date: Sun, 20 Apr 2025 12:40:25 -0700 Message-Id: <20250420194030.75838-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250420194030.75838-1-sj@kernel.org> References: <20250420194030.75838-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: D497080005 X-Stat-Signature: ei4rnfu1axh8qwzx91ihay4mmif98q89 X-Rspam-User: X-HE-Tag: 1745178039-391129 X-HE-Meta: U2FsdGVkX1+QHYe1It+gJPblcyc5zhDcaZbEWjh8+gdW65VDK6WCkd/UxWoBtqN3Tr3hPotp14oLxJiQbPGgeO8dbEg99fsHfSCcdpE3btEjC0SjNV0QoMxUwW30tvAIK1iJBCo1AZg1JPMRMlybSjX0PnaUW1MB4fFxhyzqsB+6dGDIg72hw8v2yb7h4j92QxUTN3O+cOf0eqG+KozPwai2ms8lZt17HjktDuPvmlhCB90RDNL/r74fRtxBNQv+E2zPo8n+4X23v2A0YxEV/D7oIqc4X+JjtrFBc/VC+wshwJSKZ76P9GMNCcmkXTDyLRVQcxLuQfCucGYd3HwHfeDL/36bFlQ5Tj7BKnmTSqTiMKhFE4UJb2iBF8Lboh/3XW+51XdRxZCau+/jCOxw00VmGFDPtwRdVCG/mjDqijdIoVtouqpkOOclMnzWqgZjDuPngjFAFRUii0NDjClo9NdoOSqX+X24+X5tk9YxCDzCGhCQ38f8GFLR656KpjTkG0XEkNDK5KQp0iITla/gnXBWdmN47vi9OqQ4cfbNr1pgYkzbU7cagfa5ExSsf0f5Nqu+3FCDRcGU9vvPKv7DI+dpi6zZMOuOfxCjfRtzSA465yPKHHigYHvmuqAXhoKLJg1i9tuFoHhpiyQtOMFiZw0z7k/9/7uB+W6WN8zsYPQPaVYL9weh7eJXu2Ip/hwqkzeXrTbIZ3E4Y+DxC98lAmchFuJuD7PgZE80OYcPgB4v+eJEodByf+tyCpay/KgbzHeMwOkNAn/qMfFnO7dW99oX9jRnCydt5iyfJzASbDCIlwMjwU1Rw5dB7x5PilgiKj80cXJN44UqTDRwhlgZRnJEKPyhav0+Fdd3z86i2Nvb1PHLqbkORBJ1ysPkkhejUw7oK5sl5eSSgiKlfjixnwsNBJ/Lpr1yXtAZ5puAeGCLEXOdAKbgS7wGYPVM+n6aw7YEmvWPUy8CC0anGxe k8ujr9CE TvVv91evdsV+kYGdLu2aiJD3jv/r3a5iSz82WLyc+vgt47BPu2t67DBbgvyv0CT4RHeXM5k1mLcNyacb3aVAjXyfAzMF6mLnNztaQCGlJ9MC/mHI8WI0t6/C1QFFlMEW/PteHSLiWp+AOjtCpb5/VDx2+iTtCJKy4ba9UNyAm2lPn+Gzxo9orhSlf908q/eZnk8zPPe2vadb0AE3t9ytTnEFtEsjZhyChHL8X2/Ltl31+ozA= 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: DAMOS_QUOTA_NODE_MEM_{USED,FREE}_BP DAMOS quota goal metrics require the node id parameter. However, there is no DAMON user ABI for setting it. Implement a DAMON sysfs file for that with name 'nid', under the quota goal directory. Signed-off-by: SeongJae Park --- mm/damon/sysfs-schemes.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mm/damon/sysfs-schemes.c b/mm/damon/sysfs-schemes.c index 98108f082178..7681ed293b62 100644 --- a/mm/damon/sysfs-schemes.c +++ b/mm/damon/sysfs-schemes.c @@ -936,6 +936,7 @@ struct damos_sysfs_quota_goal { enum damos_quota_goal_metric metric; unsigned long target_value; unsigned long current_value; + int nid; }; /* This should match with enum damos_action */ @@ -1016,6 +1017,28 @@ static ssize_t current_value_store(struct kobject *kobj, return err ? err : count; } +static ssize_t nid_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct damos_sysfs_quota_goal *goal = container_of(kobj, struct + damos_sysfs_quota_goal, kobj); + + /* todo: return error if the goal is not using nid */ + + return sysfs_emit(buf, "%d\n", goal->nid); +} + +static ssize_t nid_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, size_t count) +{ + struct damos_sysfs_quota_goal *goal = container_of(kobj, struct + damos_sysfs_quota_goal, kobj); + int err = kstrtoint(buf, 0, &goal->nid); + + /* feed callback should check existence of this file and read value */ + return err ? err : count; +} + static void damos_sysfs_quota_goal_release(struct kobject *kobj) { /* or, notify this release to the feed callback */ @@ -1031,10 +1054,14 @@ static struct kobj_attribute damos_sysfs_quota_goal_target_value_attr = static struct kobj_attribute damos_sysfs_quota_goal_current_value_attr = __ATTR_RW_MODE(current_value, 0600); +static struct kobj_attribute damos_sysfs_quota_goal_nid_attr = + __ATTR_RW_MODE(nid, 0600); + static struct attribute *damos_sysfs_quota_goal_attrs[] = { &damos_sysfs_quota_goal_target_metric_attr.attr, &damos_sysfs_quota_goal_target_value_attr.attr, &damos_sysfs_quota_goal_current_value_attr.attr, + &damos_sysfs_quota_goal_nid_attr.attr, NULL, }; ATTRIBUTE_GROUPS(damos_sysfs_quota_goal); -- 2.39.5