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 90FFBC7EE30 for ; Sun, 29 Jun 2025 20:14:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A12506B0099; Sun, 29 Jun 2025 16:14:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 99C8E6B009C; Sun, 29 Jun 2025 16:14:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 816066B009B; Sun, 29 Jun 2025 16:14:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6CDFD6B0099 for ; Sun, 29 Jun 2025 16:14:52 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3C7C31A0170 for ; Sun, 29 Jun 2025 20:14:52 +0000 (UTC) X-FDA: 83609541624.18.4984375 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf10.hostedemail.com (Postfix) with ESMTP id A3E7FC000D for ; Sun, 29 Jun 2025 20:14:50 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=YgwmRQ4o; spf=pass (imf10.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 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=1751228090; 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=8EiIpnsiv60xjs94k/rhmHbGE7OxXVPWYZakS1xxQk0=; b=4qwwr7iIOdct198WB+zpyLcsZSdUq0rJG/9cIw7JWHMfIztmbbK+br6/UNIcd/REZthxIR VBXt7eA1N2wp0voR0jrf/6R9KeNbbur3eqNIibrLGrnN6CFfFEmrwh4jcS/oWtpf0HTIHE P0zTe02nKMj7XnA1XA5D64YsAVwtrwI= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=YgwmRQ4o; spf=pass (imf10.hostedemail.com: domain of sj@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751228090; a=rsa-sha256; cv=none; b=6tStnya6G5P1/ajoj5Jphv1gfXvtmn9U2YU3OszFbviWuxahjc/2SBpM2hy/JkTTaJ5VJ2 AIcDt8LHnWek8c9I26CgsAMrZCGJNVJVySNle+7Cnrw52G5NIpMKMPTid12/bgtakWzqOr frv1me+X1uYjtZnVqfTPHe6HWQOpxnk= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DEFA1A52C72; Sun, 29 Jun 2025 20:14:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89743C4CEEB; Sun, 29 Jun 2025 20:14:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751228089; bh=mDWuVxXJ4aMqmgAerywNkRA8beEUvDecOP2ZcDOEVbE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YgwmRQ4oNhfzfFDiJHFGVTzyKosuM3x0W/IzFPslQOBcdymUZyOKMnETQXHZBBMOv MWIsy882JWriU8dYfMmmkTnHKS2dakwp85zzx8NzngbzFhLPsKFZbw9jmX+ZuXAi4Y eUAO1KRXBdxyIHO00lYNrH2QHe6GORMPDO/E/6Lv5gZmlxwQzrUcB1PmtZAs3OWXle K+7GFOsnsmD3dPz6ceT51X/PXt1F/qVAFvDu/ZOdEsVxdE/jBSnuxaVLfGB7WajabW USrDR6tV6+B46HLFblzgwFrZVjLBKhOQyLKs+EsSzoPmTt6gjToN7gTpjyGj43cagt 4oSdTIbRSTo8w== 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 3/6] mm/damon/core: check received access reports Date: Sun, 29 Jun 2025 13:14:40 -0700 Message-Id: <20250629201443.52569-4-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250629201443.52569-1-sj@kernel.org> References: <20250629201443.52569-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A3E7FC000D X-Stat-Signature: 4xitq5ihjnqc68e7hb1csm5pxr84qofn X-Rspam-User: X-HE-Tag: 1751228090-986183 X-HE-Meta: U2FsdGVkX1/onuWyb7B7WZvLaZ+ym65tRTiq3gmoWg/6tshICJO/k13TVHWj8oK/8HcoslrmkX0YOZ0rec+k6hX1E0qlbMB6ex7sDkuVe+I0m/EFthch6n5iEe0Q68atcVL30QiBUWqa9VJln32263pdrknfrobQ3XpRfumK+9segbE7IHYOMLLVbCo0Um7T1xFTG1fxD1uklSZAu8IvFtKwWAy0KqwTij/K7RM7MCFW+VIV5c31ehUTejFmTNd31vfsVTMcsUsx41gx0GBFe97olml6dXuQa2irltb6L2naSKDq/DiLSvy6/XeG8PlC2vD6TXhC2PwJoBjelmPmF9VDxVQNopGmTPml4e5M1gJLNa29oOvengH1HEwjUf2fEvhEtT1ZairWuqIHPjx5zVSy/H8AaB8ZD47YKWlMJIR9WGK2SRy88v73bmtmyXtkHIQPx+ASm55UaaSm1VEMVa0crHhYNGI3lsWE2DgPYpaVYWchrc0RChJsL3bpfUCZe1e/hKpgNzIDPbAxBXykBQ6iwlg/mGfpVNLQ4CMlphcLEj/vnorzNGsfjIGD308o9q1Ty1C9lV7DRHNyOe3JG7ROqEAsXP7PEOiom7JeKoDIBRk8sVINEy3w1yk7fzA3zLmY6TuavGYacuiUW/D96y0pyaPPM56leDbS50dIy4yGJQr4B2JpStpO7NCZx6DXJNSSuZYzuVyMNIjox1M/uHlZn/zR0fXK4gvq1xg8tH/gDB98Xgty2D1UL3kF+S7wucMljCC/jMQ3DKi4zfbw+7jNuzAGiaILYtcsByyvvcbr3YihdBLkiOTvt9pz7CQRk8DBT25dd3IV+zOULfOYtgUI45tSguOdWHYCEHv/7aXXpn2AMJwGsJz/p7aQP3RWUM7sBzx5v2GB1w6I++zTCeztVaYf9WHhGE+aYLQ0VKnJXburd92+/TUfHGyGmyP7W8MP7ftzv/QdPF4feEe 2tK6Twyi wA7aEibYqu6h47+nklU3nY5XGw5rlshvNtYEoyRYjIXluhtcFvylClLXSa2ezPHe9lo5DBNHVdG82txpvoDF+uVyvP/njZ2reIUDf79h+x+qzRqHSDGxK53l49WPwz9T78uy6hKzMZ2K6uG8sg72o+kw3qO7X5GYyKpK3tvJxE/BIlEv2oWqmEd/txgqPCAbYbg3xoXBqLiOtt6KxP0w8NnfLuXk7zsyuTligEG+G+wlEXAJqFiZ16rStXxMTRCM72ELM2dZr4S/2pxeUA2okmAlxlmcifIwCoLC7o9avEPnL5Go= 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: Reported access information is only saved in the core layer's internal data structure. Those are not really being used for final monitoring results. Update core layer access information (DAMON regions) using the reported access information. Signed-off-by: SeongJae Park --- mm/damon/core.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/mm/damon/core.c b/mm/damon/core.c index b54ed91f2dce..59567d79af99 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -2472,6 +2472,46 @@ static void kdamond_init_ctx(struct damon_ctx *ctx) } } +static void kdamond_apply_access_report(struct damon_access_report *report, + struct damon_target *t, struct damon_ctx *ctx) +{ + struct damon_region *r; + + if (ctx->ops.eligible_report && !ctx->ops.eligible_report(report, t)) + return; + + /* todo: make search faster, e.g., binary search? */ + damon_for_each_region(r, t) { + if (report->addr < r->ar.start) + continue; + if (r->ar.end < report->addr + report->size) + continue; + r->nr_accesses += report->nr_accesses; + } +} + +static void kdamond_check_reported_accesses(struct damon_ctx *ctx) +{ + int i; + struct damon_access_report *report; + struct damon_target *t; + + mutex_lock(&damon_access_reports_lock); + for (i = 0; i < damon_access_reports_len; i++) { + report = &damon_access_reports[i]; + if (time_before(report->report_jiffies, + jiffies - + usecs_to_jiffies( + ctx->attrs.sample_interval))) + continue; + if (report->pid && !damon_target_has_pid(ctx)) + continue; + damon_for_each_target(t, ctx) + kdamond_apply_access_report(report, t, ctx); + } + mutex_unlock(&damon_access_reports_lock); +} + /* * The monitoring daemon that runs as a kernel thread */ @@ -2518,6 +2558,7 @@ static int kdamond_fn(void *data) kdamond_usleep(sample_interval); ctx->passed_sample_intervals++; + kdamond_check_reported_accesses(ctx); if (ctx->ops.check_accesses) max_nr_accesses = ctx->ops.check_accesses(ctx); -- 2.39.5