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 4C4D5C83F1A for ; Thu, 17 Jul 2025 05:55:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5CFDC6B009D; Thu, 17 Jul 2025 01:54:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 580A16B009F; Thu, 17 Jul 2025 01:54:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46F2E6B00A3; Thu, 17 Jul 2025 01:54:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 390F16B009D for ; Thu, 17 Jul 2025 01:54:59 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B3892BA58C for ; Thu, 17 Jul 2025 05:54:58 +0000 (UTC) X-FDA: 83672693076.28.F3A79E1 Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf08.hostedemail.com (Postfix) with ESMTP id 1382F16000B for ; Thu, 17 Jul 2025 05:54:56 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="No+y/kRh"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf08.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752731697; a=rsa-sha256; cv=none; b=nwJ9zXw1sDGF6SKLoFGj1yeQjEHT3KbiLxJUu3dJSQ4RfiqjIT98olDoV7dQgAaT3842p2 eDnzMrV9pn1K/Qv3l1DORUKnJuZK40At/Fs/mHu+9+xZ2LIKNLLhMweK74r3nkj3aOTrdv zIQDaJytXSqX9dOAcaBCwLKPur8Wws8= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="No+y/kRh"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf08.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 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=1752731697; 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=5zw4oaJ6yIF1scuh7Auu/2js4tlD789sIy5ug/vOznQ=; b=WXrPqLuxUr4ermLTaRUHb5CXeVsX2hMYYsrHK5JWY5GLjOd6vjA6kEdO+CoHdeAKd2F8tO xgKq/pRS6BsRigO3UAMEDl9brQN1S7UB/NLcism8vbPgKc8Nq4A37wqRjtwyj9HpGIB/3G KzdoFRk70+jkMlRM+ey1XoEPmqxBSxY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id C06CB45CFD; Thu, 17 Jul 2025 05:54:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77003C4CEED; Thu, 17 Jul 2025 05:54:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752731695; bh=UtykI35djlz4/u32hylRxjPmwdljWWbpzC+3yqmXBmg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=No+y/kRh+ouxJUHLNZzi6B/wN5RKDkCa/e8cn6fr6+kyErKqAJ8wQbJm9E4bRTJOD 5FD6eBqE+UviTyLGBHE8jOJLpB+hOcuUzYycysRtn8WnQSZVGt211OuoNFW+Z68iS3 An1o+1t/XknkKZyFm6hZVoRVAKkXSFHSlERA00prjZxE5/Mva4OQz2UkQVeOdtomu6 EIgiHO3BaZZvANKWr2PmE+sI9AQyYh3vRfAwV08yWem0VkblYUIKrjJ30VHuM6cEom GZSjUUdAZ1LO4K5CajFQWHjxsfNVBw4MQ+w/Jp709ga2ZufpIdS3hgVweIMLaIJMN0 Zp5aemLP2eyrA== 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 1/4] mm/damon/sysfs: implement refresh_ms file under kdamond directory Date: Wed, 16 Jul 2025 22:54:45 -0700 Message-Id: <20250717055448.56976-2-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250717055448.56976-1-sj@kernel.org> References: <20250717055448.56976-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 1382F16000B X-Stat-Signature: ue5qzoc36zjzt5ionaxyrko9tqo4y5zn X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1752731696-424114 X-HE-Meta: U2FsdGVkX1+/JcoGOxGJHm7VlygvnYNrOq55XbWBOh5T2D9WGzzIcdd0EV44XQ6qRDU1UxuHRI5lxdfGPz5KftZjy1nQoBvi4ax540vTbJ8T5jkpo0sBfYDUS93uPF3G3OxgvFj5u8puvbbI5qC0Ty3wNweS8e0amC2QB4VZXanyeh0D7ORLLU0PjN67Fl5ot1PcH1kVWAZc+vVvhohei10sq8ffDKrvHnVv02XP2vxy8OMvlJSk9S+YoezPIhSLUYhRwUP8lokcqr77gXs9UVzmp6dsIvSeF7aHBQ0gCa8gW2aRpaJQndAUoVMKBZnLd56Cd3PRoG/hozmt4+NfWMMhhm09c2Ta1ty9a3k6hTWKmcgDUWXLFo8e/bAa54mKuVrRriEr/ysjrkqNQ+esOU9mvEGrOgscBTn/NfX54J956HZwJRHG1vLfJUxa7gSQkFjzQGW4A/8SSgiTi1SXKeAl3uqk7OHD36J7JsZ1Rof8ciNcNSqwzurU3OajWb2VSMK+phpKaLJhP7/tQda0AEx4ZMfCriKtcaPXaZdmZP6lWo95kgB8Cwnc73yPCFRwgxFSMu7NLlUDkeZI0h7S7Uzp6vef4q6NYDK6zsPEEf6+sTwHexfGad+i+AhQUNw6XergbND9sA24tfrD1YTv1Z/r7k+CLmR/6qDz5JvbpB9waAnKPBnb+P0FO1RvzLdfDqk7OWPonrWrApv1/FqX9UGfdBzc7qTSCO7MhXksoK3+Q7aoF6cqtznLhqyrBTuaOjByPcUkA7+dYvhTKth2dL+P5XL+CjHLm9yK88XfhF6ZrIolo/q3t/NWoIRaTfYJKbIXyKiz47udZImRS05JXyKgvAopl1onKpc/9uy6XiS1yTL2ri7BWRVM/XjdPDvLtbpYuXKnQPAH+Yh5A8qlfogvxnNgPrVgD7mjonRqXGOhW13443SRd5Xjjn5gjL36mATOcOxWmHQhn+wbW3j bopVo2Ir He77lk69FZbTYulItyYbgPShSHmd2Y0SryFgWv++Y6W5Cz3hDyU1a6rAEtsWp44RIsq7xijWVD9yiAMOvYtdHWPbIJydhTDnnIygdCzaZX7sR3bikxzYnuAW9U2+d98cxoEd4t2dFEm2yquT+W+vEoYXECtMkUhViaRyhLlxJiLdS05WYtJxSulgEq0FXUf1EdIPJdv8/BoDkfJlJD2Ll686knAkPTlreMNo8AWYneGTbTCP9CSmEA5E1ViIiuy+SCfWt5roplAcEROpPe9RB4GtFRqiqTzsaxh84rMzQPCrkHk7EMZG61rOvfQ== 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: Implement a new DAMON sysfs file named 'refresh_ms' under each kdamond directory. The file will be used as a control knob of automatic refresh of a few DAMON internal status files. This commit implements only minimum file operations, though. The automatic refresh feature will be implemented by the following commit. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index cce2c8a296e2..4296dc201f4d 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -1155,6 +1155,7 @@ struct damon_sysfs_kdamond { struct kobject kobj; struct damon_sysfs_contexts *contexts; struct damon_ctx *damon_ctx; + unsigned int refresh_ms; }; static struct damon_sysfs_kdamond *damon_sysfs_kdamond_alloc(void) @@ -1690,6 +1691,30 @@ static ssize_t pid_show(struct kobject *kobj, return sysfs_emit(buf, "%d\n", pid); } +static ssize_t refresh_ms_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct damon_sysfs_kdamond *kdamond = container_of(kobj, + struct damon_sysfs_kdamond, kobj); + + return sysfs_emit(buf, "%u\n", kdamond->refresh_ms); +} + +static ssize_t refresh_ms_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, size_t count) +{ + struct damon_sysfs_kdamond *kdamond = container_of(kobj, + struct damon_sysfs_kdamond, kobj); + unsigned int nr; + int err = kstrtouint(buf, 0, &nr); + + if (err) + return err; + + kdamond->refresh_ms = nr; + return count; +} + static void damon_sysfs_kdamond_release(struct kobject *kobj) { struct damon_sysfs_kdamond *kdamond = container_of(kobj, @@ -1706,9 +1731,13 @@ static struct kobj_attribute damon_sysfs_kdamond_state_attr = static struct kobj_attribute damon_sysfs_kdamond_pid_attr = __ATTR_RO_MODE(pid, 0400); +static struct kobj_attribute damon_sysfs_kdamond_refresh_ms_attr = + __ATTR_RW_MODE(refresh_ms, 0600); + static struct attribute *damon_sysfs_kdamond_attrs[] = { &damon_sysfs_kdamond_state_attr.attr, &damon_sysfs_kdamond_pid_attr.attr, + &damon_sysfs_kdamond_refresh_ms_attr.attr, NULL, }; ATTRIBUTE_GROUPS(damon_sysfs_kdamond); -- 2.39.5