The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: SJ Park <sj@kernel.org>
Cc: SJ Park <sj@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	damon@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: [RFC PATCH 23/27] mm/damon/sysfs: implement submit command for report producer
Date: Sun, 15 Nov 2026 12:28:41 -0800	[thread overview]
Message-ID: <20261115202849.99134-24-sj@kernel.org> (raw)
In-Reply-To: <20261115202849.99134-1-sj@kernel.org>

Let users manually submit a report of a data attribute for a given
address range of memory.  Let producer_state receive "submit" input for
that.  For the input, generate the report based on user inputs that are
written to the appropriate sysfs files and submit to DAMON using the
core API, damon_submit_report().

Signed-off-by: SJ Park <sj@kernel.org>
---
 mm/damon/sysfs.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index 5f9bb1955dfd5..0049aac6ab974 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -3107,13 +3107,26 @@ static ssize_t producer_state_store(struct kobject *kobj,
 {
 	struct damon_sysfs_producer *producer = container_of(kobj,
 			struct damon_sysfs_producer, kobj);
+	struct damon_report report;
+	int err;
 
-	if (sysfs_streq(buf, "on"))
+	if (sysfs_streq(buf, "on")) {
 		producer->enabled = true;
-	else if (sysfs_streq(buf, "off"))
+	} else if (sysfs_streq(buf, "off")) {
 		producer->enabled = false;
-	else
+	} else if (sysfs_streq(buf, "submit")) {
+		if (!producer->enabled)
+			return -EINVAL;
+		if (producer->report_type != DAMON_REPORT_TYPE_USER_REPORT)
+			return -EINVAL;
+		report.type = DAMON_REPORT_TYPE_USER_REPORT;
+		report.addr_range = producer->addr_range;
+		err = damon_submit_report(&report);
+		if (err)
+			return err;
+	} else {
 		return -EINVAL;
+	}
 	return count;
 }
 
-- 
2.47.3

  parent reply	other threads:[~2026-11-15 20:29 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-15 20:28 [RFC PATCH 00/27] mm/damon: let users report their data attribute findings SJ Park
2026-11-15 20:28 ` [RFC PATCH 01/27] mm/damon/api: introduce struct damon_report SJ Park
2026-11-15 20:28 ` [RFC PATCH 02/27] mm/damon/core: implement data attribute report queue SJ Park
2026-11-15 20:28 ` [RFC PATCH 03/27] mm/damon/core: introduce damon_submit_report() SJ Park
2026-11-15 20:28 ` [RFC PATCH 04/27] mm/damon/sysfs: add admin/reports/ directory SJ Park
2026-11-15 20:28 ` [RFC PATCH 05/27] mm/damon/sysfs: add reports/producers/ directory SJ Park
2026-11-15 20:28 ` [RFC PATCH 06/27] mm/damon/sysfs: add producers/nr_producers file SJ Park
2026-11-15 20:28 ` [RFC PATCH 07/27] mm/damon/sysfs: implement report producer directory SJ Park
2026-11-15 20:28 ` [RFC PATCH 08/27] mm/damon/sysfs: implement report producer type and state files SJ Park
2026-11-15 20:28 ` [RFC PATCH 09/27] Docs/mm/damon/design: update for report system SJ Park
2026-11-15 20:28 ` [RFC PATCH 10/27] Docs/admin-guide/mm/damon/usage: update for report producer sysfs SJ Park
2026-11-15 20:28 ` [RFC PATCH 11/27] Docs/ABI/damon: update for report producer sysfs files SJ Park
2026-11-15 20:28 ` [RFC PATCH 12/27] mm/damon/core: introduce DAMON_FILTER_TYPE_REPORT_MADE SJ Park
2026-11-15 20:28 ` [RFC PATCH 13/27] mm/damon/core: introduce damon_report_exist() SJ Park
2026-11-15 20:28 ` [RFC PATCH 14/27] mm/damon/paddr: support REPORT_MADE type probe filter SJ Park
2026-11-15 20:28 ` [RFC PATCH 15/27] mm/damon/sysfs: add filter_report_type file under probe filter directory SJ Park
2026-11-15 20:28 ` [RFC PATCH 16/27] mm/damon/sysfs: support REPORT_MADE type probe filter setup SJ Park
2026-11-15 20:28 ` [RFC PATCH 17/27] Docs/mm/damon/design: update for report_made probe filter type SJ Park
2026-11-15 20:28 ` [RFC PATCH 18/27] Docs/admin-guide/mm/damon/usage: update for REPORT_MADE probe filter SJ Park
2026-11-15 20:28 ` [RFC PATCH 19/27] Docs/ABI/damon: " SJ Park
2026-11-15 20:28 ` [RFC PATCH 20/27] mm/damon/api: introduce user_report report type SJ Park
2026-11-15 20:28 ` [RFC PATCH 21/27] mm/damon/sysfs: add user_report support for report type input SJ Park
2026-11-15 20:28 ` [RFC PATCH 22/27] mm/damon/sysfs: implement report producer addr_{start,end} files SJ Park
2026-11-15 20:28 ` SJ Park [this message]
2026-11-15 20:28 ` [RFC PATCH 24/27] selftests/damon/sysfs.sh: add basic tests for admin/reports/ SJ Park
2026-11-15 20:28 ` [RFC PATCH 25/27] Docs/mm/damon/design: update for user report support SJ Park
2026-11-15 20:28 ` [RFC PATCH 26/27] Docs/admin-guide/mm/damon/usage: update for user_report " SJ Park
2026-11-15 20:28 ` [RFC PATCH 27/27] Docs/ABI/damon: " SJ Park

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261115202849.99134-24-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=damon@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox