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 C637AC36003 for ; Thu, 20 Mar 2025 05:39:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 18A9A280005; Thu, 20 Mar 2025 01:39:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 13D6D280004; Thu, 20 Mar 2025 01:39:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF6E0280005; Thu, 20 Mar 2025 01:39:47 -0400 (EDT) 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 D2702280004 for ; Thu, 20 Mar 2025 01:39:47 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B5B51C0CAD for ; Thu, 20 Mar 2025 05:39:48 +0000 (UTC) X-FDA: 83240827656.05.E0D470F Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf13.hostedemail.com (Postfix) with ESMTP id 30B9F20006 for ; Thu, 20 Mar 2025 05:39:47 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="vIw0uP/f"; spf=pass (imf13.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742449187; 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=c0w2UMORg4ovpRS8B6FVtUnPr4JFaq9dKlryV6fOVVQ=; b=EbOul49ITKmp1hR9263+vMae0+tbRvKsERyv3jZPTv4bAzzZBFwurSM3IaKQA+tBRmAGVR egWdE4N5RaAdP1/N5pxIr38684eu7vodkQKx4DE0eWRi9/WEiEQpVVB1UODB5G3h05R7wd JzJzdEP4kSocaXTdF3TojRdP4cPiPi8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742449187; a=rsa-sha256; cv=none; b=1A+j5md5avrk8SEHxHSGqSrDeOWVFgDBi2UT4pvFUYUr2PD6alNNx9V2qFybRspkIXtiHJ a7j+WueRTHeiTKtyeu8aEPN9M1k8eSvHqQX3364nTxtoUWY2ZUiFnshF7cQJgHirQQzqod QLUypUFQAokHjCd/FdNLUjQlB4REqP4= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="vIw0uP/f"; spf=pass (imf13.hostedemail.com: domain of sj@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 1CDA06115A; Thu, 20 Mar 2025 05:39:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A287C4CEDD; Thu, 20 Mar 2025 05:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742449186; bh=00PQCLtovSAjyu/3Lndfh7V4VIWve/5SxCLnZNKDSzg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vIw0uP/fO84iFLnADRPGs235ZTy+7Ert1btRyCCAzUmsM2rr26wGlPrAs5Fq6xwfr pV6RrGnuZtMXEDhldoQaQNo26/o0EY1i/LhBf6seZMXn8hctmfKO6euFwRPrtpwvBv j71/okQQdhFBK2ohC9Fp8lgQwMR45BTp4PljsrzyY5OCRW43MwyTA9a/PSO14RVEs6 krR4BM+A0DbqqFdSM3iyagCIWHfhnbWLwIDlCPSWy5k7W6DyLl9b9r/By4IDFrWK49 bEczofxfcKczVftWHK4oI4p2t1ptgywoAnFyduYWXPyYBb9nb0Dn2Cec2+np8KMpmt jmZlEKR9feEsg== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH 2/4] mm/damon/sysfs-schemes: implement file for quota goal nid parameter Date: Wed, 19 Mar 2025 22:39:35 -0700 Message-Id: <20250320053937.57734-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250320053937.57734-1-sj@kernel.org> References: <20250320053937.57734-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 30B9F20006 X-Stat-Signature: fa7gfyy3s7nt9kr3asf4519b5gtpm8xr X-HE-Tag: 1742449187-435815 X-HE-Meta: U2FsdGVkX19/aibeGfoCgHPSSEdDL/JePSgVlh3H+c4YW4Gh3+f8VrEaCeql7CBAY82fjgwrPnHZNfrmHRUGJiOZaAkCACWz6f39QbqDzCID+0uyWkdn/LjK/znXkXqCPvIbXqxp8Z5X94Y3qU16uy6AO3TqOuTwl+BjxuVkY4SJ398Kx2+/o7LKSwV0ebQlf6uKKxCvRDGE4Bm0vxmRvu/CPHUS7WfzqYN9+wsTNogWpQ21aSe44gWNxl0k7fS1wFfy10qcxURC2n7+d/2EsfjmsovkCbKpOOGSYmhIinpP41v3FdkI00Ql3js5+eCRWmcoekwI6JTjPbkL86XAggEeb2ecRrp1zD/iQpEslOROPeuF6BfMJ7mdZAI8TZmicqjQhqOSc5yMLm3l08PqHSTUreKGgFXde3c8Gyky9efNiLTJia5609ynCMit7i0qOhHQQpZPogs6FJisodpfma49X2KvnaXLB6SIFdc8TqiO63y7PahIr3eZNJvSeF7npxw0TUJ/QlVpEgBTiK0vQsbVFseJZfq1+thoZ9SX7019DF+2O0jAlGJlLnS0oujbvFlRXeAiUt/jKdOfzgVCdWLIx0av5qPPA3rg8cZjdR2UkVCkDJvWtri0Xy2ZjKkddZFlHcSxTWeyeF/nTf8Q9O9Fuf6TV1azzIFk1b1o3y/elIKsxW+ER4Vtptsr9Ad6XHvhcoUeHkd6g7cSXZcd3Z9ZELFEirEh5fKHczE0C3F+bb2qrA4noZOjGhY/GGeT9HH04i3uWGrhR6clHO23cVoSfCo7CX3zMdGEqH4yZzHUC+D09lRFJx6gUswAwnVgyg537HnbuPiO67dpqdM3tW0qtQ+iHkMDkm9WvuuYxlltV8HEUTiIhOdmCuFQ45R2xQ+T3H1d66Dty+BgTPfcl/ENXifNTX9l5hwNeQ31ooYqy12wgUr9qBWmGgxSSlETULpIPI+P/zYansrqB+e f7duas9o MjOyBslVGDM0V7rs+7FZXeslosdZE1oE5qw5YwleFZFN40GQFautnChGeaAqGXOPG4aLgPajMfuxcyGf8KwlvRVWK3aUg0sbGZxuS2ReSt1NRlpAkumTcbBy6U6utjO3/IX051vtJhRh4536dfpRqFqwE0EsWFn6S7QuVDxa9rKyi+3FlZcp34me3pokC0iV14dgcaqFgt8+ocx8Vi9PvqeDUf81pUgch/9Ga50/usgtD+dQ= 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: Only DAMON core kernel API callers can use the DAMOS quota goal metrics for specific NUMA node's utilization and free ratios. Implement DAMON sysfs files to receive the node id for the goals. 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 0f338ba1db43..8c51906c8268 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_quota_goal_metric */ @@ -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