All of lore.kernel.org
 help / color / mirror / Atom feed
From: SJ Park <sj@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: SJ Park <sj@kernel.org>,
	damon@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: [PATCH REPOST 1/5] mm/damon/vaddr: support prep_probes
Date: Wed,  9 Sep 2026 07:04:03 -0700	[thread overview]
Message-ID: <20260909140408.104699-2-sj@kernel.org> (raw)
In-Reply-To: <20260909140408.104699-1-sj@kernel.org>

DAMON virtual address space operation set (vaddr) is not supporting
prep_probes.  Add the support.

Signed-off-by: SJ Park <sj@kernel.org>
---
 mm/damon/vaddr.c | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c
index af9e1b82454cc..20f4784f17817 100644
--- a/mm/damon/vaddr.c
+++ b/mm/damon/vaddr.c
@@ -483,6 +483,45 @@ static unsigned int damon_va_check_accesses(struct damon_ctx *ctx)
 	return max_nr_accesses;
 }
 
+static void damon_va_prep_probe_region(struct damon_ctx *ctx,
+		struct mm_struct *mm, struct damon_region *r,
+		struct damon_probe *probe)
+{
+	struct damon_prep *p;
+
+	damon_for_each_prep(p, probe) {
+		switch (p->action) {
+		case DAMON_PREP_SET_PGIDLE:
+			damon_va_mkold(mm, r->sampling_addr);
+			break;
+		default:
+			break;
+		}
+	}
+}
+
+static void damon_va_prep_probes(struct damon_ctx *ctx, bool set_samples)
+{
+	struct damon_target *t;
+	struct mm_struct *mm;
+	struct damon_region *r;
+	struct damon_probe *p;
+
+	damon_for_each_target(t, ctx) {
+		mm = damon_get_mm(t);
+		if (!mm)
+			continue;
+		damon_for_each_region(r, t) {
+			if (set_samples)
+				r->sampling_addr = damon_rand(ctx, r->ar.start,
+						r->ar.end);
+			damon_for_each_probe(p, ctx)
+				damon_va_prep_probe_region(ctx, mm, r, p);
+		}
+		mmput(mm);
+	}
+}
+
 static bool damos_va_filter_young_match(struct damos_filter *filter,
 		struct folio *folio, struct vm_area_struct *vma,
 		unsigned long addr, pte_t *ptep, pmd_t *pmdp)
@@ -911,6 +950,7 @@ static int __init damon_va_initcall(void)
 		.update = damon_va_update,
 		.prepare_access_checks = damon_va_prepare_access_checks,
 		.check_accesses = damon_va_check_accesses,
+		.prep_probes = damon_va_prep_probes,
 		.target_valid = damon_va_target_valid,
 		.cleanup_target = damon_va_cleanup_target,
 		.apply_scheme = damon_va_apply_scheme,
-- 
2.47.3

  reply	other threads:[~2026-09-09 14:04 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-09 14:04 [PATCH REPOST 0/5] mm/damon/vaddr: support {prep,apply}_probes SJ Park
2026-09-09 14:04 ` SJ Park [this message]
2026-09-09 14:12   ` [PATCH REPOST 1/5] mm/damon/vaddr: support prep_probes sashiko-bot
2026-09-11  1:59   ` Lian Wang
2026-09-09 14:04 ` [PATCH REPOST 2/5] mm/damon/paddr: move probe filter handling to ops-common SJ Park
2026-09-09 14:09   ` sashiko-bot
2026-09-11  2:00   ` Lian Wang
2026-09-09 14:04 ` [PATCH REPOST 3/5] mm/damon/vaddr: support apply_probe SJ Park
2026-09-09 14:11   ` sashiko-bot
2026-09-09 14:04 ` [PATCH REPOST 4/5] mm/damon/vaddr: extend apply_probes() for hugetlb SJ Park
2026-09-09 14:11   ` sashiko-bot
2026-09-11  2:00   ` Lian Wang
2026-09-11  9:53   ` Kunwu Chan
2026-09-09 14:04 ` [PATCH REPOST 5/5] mm/damon/vaddr: support pgidle_unset probe filter type SJ Park
2026-09-09 14:21   ` sashiko-bot
2026-09-11  2:01   ` Lian Wang
2026-09-11 13:33     ` SJ Park
2026-09-11 10:04   ` Kunwu Chan
2026-09-11 13:32     ` SJ Park
2026-09-11 15:32       ` KunWu Chan
2026-09-09 14:25 ` [PATCH REPOST 0/5] mm/damon/vaddr: support {prep,apply}_probes Gutierrez Asier
2026-09-09 14:31   ` SJ Park
2026-09-09 14:39     ` Gutierrez Asier
2026-09-09 14:43       ` SJ Park
2026-09-09 14:33 ` 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=20260909140408.104699-2-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.