From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AFC332BF24; Mon, 27 Apr 2026 15:12:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302760; cv=none; b=fI4WlWA0RoxYSC+4JjbQC1u27KcePq11fRaZYkav/PYr6twwu5liQAdWvN3XY4reyb5TV/OmobCBHPMavKTk+gi+z8AofQMhQawVWpJqCtKumoe9coJnqPjPf0fgxNRlROv8PhinQzzPeqkQi4Vzp4sU0YSICOa8NyTZ2aCCyP4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302760; c=relaxed/simple; bh=Apk+eXvqRSR2+iwL/Aa86zOSrOeZDT/qkO72pSDz9VI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T/k5UhgRcbC90e/8ImuCTdigE3nYnrya3B20nG9YcbesjtC7vRWQD/1lAopt8570sC7HvnHQmNf+YYdofsHLSs5EH0beZYS9gXCqCa+cozGBnzBG6BUTEEciKfa8lo2050Amov4dTICsVqyCuFmMkeibb5pyhcHpEN86QSfUH+o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Mn9gY+7I; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Mn9gY+7I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 125B6C19425; Mon, 27 Apr 2026 15:12:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302760; bh=Apk+eXvqRSR2+iwL/Aa86zOSrOeZDT/qkO72pSDz9VI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mn9gY+7I7sI26P7ezwJ2NpPolcRAG32kCfn1mjgOoxVb39gIYIj/4VVLIcj4vFJjy bXHRaA3FjLPqXHZNyZiHoR+dyaiFpj4o7qlF0zaevuHjbdjHYnh5nOM5n61iauBDcG yPhPh8ErL5Cxb0FgUySj5MnS0rZxpywCJBCNgJmnFfZYUHVp9uP9wNuiO0aS9ptlG8 fw/6hhVyU3n3DWe6bx7jkyWqSB6i4yQojLKipW9AUZnjN1ow7e3ycBX1n1JdyKXHAP 2jB/2g2iqtEr4nXSSKCooQXtFAcqH+RsLKkemrxRvMk9Ji1QhqMgzYqwuH1P5ESm83 R9WS5MJwi5eBw== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 01/10] mm/damon/core: introduce damon_ctx->paused Date: Mon, 27 Apr 2026 08:12:20 -0700 Message-ID: <20260427151231.113429-2-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMON supports only start and stop of the execution. When it is stopped, its internal data that it self-trained goes away. It will be useful if the execution can be paused and resumed with the previous self-trained data. Introduce per-context API parameter, 'paused', for the purpose. The parameter can be set and unset while DAMON is running and paused, using the online parameters commit helper functions (damon_commit_ctx() and damon_call()). Once 'paused' is set, the kdamond_fn() main loop does only limited works with sampling interval sleep during the works. The limited works include the handling of the online parameters update, so that users can unset the 'pause' and resume the execution when they want. It also keep checking DAMON stop conditions and handling of it, so that DAMON can be stopped while paused if needed. Signed-off-by: SeongJae Park --- include/linux/damon.h | 2 ++ mm/damon/core.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/include/linux/damon.h b/include/linux/damon.h index 5e2fee6f517ae..82dd43fb639ad 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -792,6 +792,7 @@ struct damon_attrs { * @ops: Set of monitoring operations for given use cases. * @addr_unit: Scale factor for core to ops address conversion. * @min_region_sz: Minimum region size. + * @pause: Pause kdamond main loop. * @adaptive_targets: Head of monitoring targets (&damon_target) list. * @schemes: Head of schemes (&damos) list. */ @@ -845,6 +846,7 @@ struct damon_ctx { struct damon_operations ops; unsigned long addr_unit; unsigned long min_region_sz; + bool pause; =20 struct list_head adaptive_targets; struct list_head schemes; diff --git a/mm/damon/core.c b/mm/damon/core.c index 9a4220174a61a..00ff1a1c92e73 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1368,6 +1368,7 @@ int damon_commit_ctx(struct damon_ctx *dst, struct da= mon_ctx *src) if (err) return err; } + dst->pause =3D src->pause; dst->ops =3D src->ops; dst->addr_unit =3D src->addr_unit; dst->min_region_sz =3D src->min_region_sz; @@ -3156,6 +3157,14 @@ static int kdamond_fn(void *data) kdamond_call(ctx, false); if (ctx->maybe_corrupted) break; + while (ctx->pause) { + damos_walk_cancel(ctx); + kdamond_usleep(ctx->attrs.sample_interval); + /* allow caller unset pause via damon_call() */ + kdamond_call(ctx, false); + if (kdamond_need_stop(ctx) || ctx->maybe_corrupted) + goto done; + } if (!list_empty(&ctx->schemes)) kdamond_apply_schemes(ctx); else --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B082E33263A; Mon, 27 Apr 2026 15:12:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302760; cv=none; b=RIawBwLh8fmlx/voTR1u+TYR8qdTYrivFIjzBF37oGlIJuUnUdYzfp86OnhVeZX5WdzHtbZlEEUhF/OXdJ3ra25rOzwEYliMgnBR+oaCXrVtgVOlI9hmMuD/UhNUUkTmsx6njkJDXgsaFu4XaKfDWORmZ9ssf0RaRgS1gRPXr0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302760; c=relaxed/simple; bh=2dcPQ5utp96tpuaw38bt8ZePM4bNlSedzhIzyfTdfgk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Uq0hZUPF6po4B3m1zXE6w3CXEDeP42k6YdwB+yXXEGKqIWPKo1mY6jqedATk8igMUcpqZFlXsG7Lk1YXyizSCvx5pPh1m3VkwLPaX5mK3WamGqM7rYjXuIUiey3b+33c3Jq2wkZSC1m+GGcmdzoAXr4guA5mQ7lZ6qvf8SdFSKk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iYrNgWHp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iYrNgWHp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 657DBC2BCB5; Mon, 27 Apr 2026 15:12:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302760; bh=2dcPQ5utp96tpuaw38bt8ZePM4bNlSedzhIzyfTdfgk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iYrNgWHp5tLzOz/3aqLuMzSn23KTXvrapVoPTw/yBJZ9qbPiEl2mHbD2/7KAcG5yY OtNwvMV/Fwcq57a0D/j1GsDkRO11Pu8gYvB/B9ZWsulVGKEZSRTY/bUwXRmkiq0huD H3hXg2S6vvUgJr3xopSpNwdarO45CgJMaYTDukmpkKOrfPhs+yjrQH0/56+zA9Gawn RU9BVYhxxSdiR/5sVumDvNc/n4cgDnasEYDKuKPdAmdTRKx3UxAuvDXtsKvFoNRVbf Hhiga0luIB/6LHOYBajYCmFXXIC7Ojxb3Cu7sUdsRddsS7JXNn+auf6f8CPBCFe1TX J1ME36DrUTvTQ== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 02/10] mm/damon/sysfs: add pause file under context dir Date: Mon, 27 Apr 2026 08:12:21 -0700 Message-ID: <20260427151231.113429-3-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add pause DAMON sysfs file under the context directory. It exposes the damon_ctx->pause API parameter to the users so that they can use the pause/resume feature. Signed-off-by: SeongJae Park --- mm/damon/sysfs.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c index eefa959aa30ae..d5863cc33d230 100644 --- a/mm/damon/sysfs.c +++ b/mm/damon/sysfs.c @@ -866,6 +866,7 @@ struct damon_sysfs_context { struct damon_sysfs_attrs *attrs; struct damon_sysfs_targets *targets; struct damon_sysfs_schemes *schemes; + bool pause; }; =20 static struct damon_sysfs_context *damon_sysfs_context_alloc( @@ -878,6 +879,7 @@ static struct damon_sysfs_context *damon_sysfs_context_= alloc( context->kobj =3D (struct kobject){}; context->ops_id =3D ops_id; context->addr_unit =3D 1; + context->pause =3D false; return context; } =20 @@ -1053,6 +1055,30 @@ static ssize_t addr_unit_store(struct kobject *kobj, return count; } =20 +static ssize_t pause_show(struct kobject *kobj, struct kobj_attribute *att= r, + char *buf) +{ + struct damon_sysfs_context *context =3D container_of(kobj, + struct damon_sysfs_context, kobj); + + return sysfs_emit(buf, "%c\n", context->pause ? 'Y' : 'N'); +} + +static ssize_t pause_store(struct kobject *kobj, struct kobj_attribute *at= tr, + const char *buf, size_t count) +{ + struct damon_sysfs_context *context =3D container_of(kobj, + struct damon_sysfs_context, kobj); + bool pause; + int err =3D kstrtobool(buf, &pause); + + if (err) + return err; + context->pause =3D pause; + return count; +} + + static void damon_sysfs_context_release(struct kobject *kobj) { kfree(container_of(kobj, struct damon_sysfs_context, kobj)); @@ -1067,10 +1093,14 @@ static struct kobj_attribute damon_sysfs_context_op= erations_attr =3D static struct kobj_attribute damon_sysfs_context_addr_unit_attr =3D __ATTR_RW_MODE(addr_unit, 0600); =20 +static struct kobj_attribute damon_sysfs_context_pause_attr =3D + __ATTR_RW_MODE(pause, 0600); + static struct attribute *damon_sysfs_context_attrs[] =3D { &damon_sysfs_context_avail_operations_attr.attr, &damon_sysfs_context_operations_attr.attr, &damon_sysfs_context_addr_unit_attr.attr, + &damon_sysfs_context_pause_attr.attr, NULL, }; ATTRIBUTE_GROUPS(damon_sysfs_context); @@ -1470,6 +1500,7 @@ static int damon_sysfs_apply_inputs(struct damon_ctx = *ctx, if (sys_ctx->ops_id =3D=3D DAMON_OPS_PADDR) ctx->min_region_sz =3D max( DAMON_MIN_REGION_SZ / sys_ctx->addr_unit, 1); + ctx->pause =3D sys_ctx->pause; err =3D damon_sysfs_set_attrs(ctx, sys_ctx->attrs); if (err) return err; --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9597B332ECB; Mon, 27 Apr 2026 15:12:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302761; cv=none; b=o0XGodtl6+FfG+nAa5hEIOkD9wFhyXpf8WWI5ol7rHOxxXgZrWQL3YRbXXl8xz+FUbjMh1FkC0JJshnD0Ljyi8Xp+LmK1+iLTczBZH9Was1EUOKerq2GkyhMK681yVkXOEnO9wAGA3otM2ABZVx9mqquKOojwYbWnksBRRvmYTc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302761; c=relaxed/simple; bh=cefZkLteoGUCWc4MRoifuuAEqrfO3tIQ452Q0kCEVdc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eitN1inJWHwH35SYdOGLbLYDhq+gQQcRCcOGgXC9urkZveM/anQfXImuDky28Leo/WYBk9uYIkuTSf4xODTWgkz87yFoKk9TIQT7k40yyjvBnW2P/KNAT/BpaDmUAoGPnfBDn+Hl3FaSjqNmy1jNLwF6sf2FA6FNRp0+eAFAZuw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=njaiG58w; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="njaiG58w" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7C19C19425; Mon, 27 Apr 2026 15:12:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302761; bh=cefZkLteoGUCWc4MRoifuuAEqrfO3tIQ452Q0kCEVdc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=njaiG58wjsoDLEqvI2yOa/BxJ00RrwagWompIzbxHgrQ58S+/Bsnq2TIQK+l7yvjm 1iuSJc3qvdzX/n1j+GgrTOsHCUrlV8VhnNjgsojSBdOkg8jjbK2bSGYCtHgXOzSrI6 A0umOBQDdD/THIPDnwDAd5v4yh7TaR5S4AkibyBJ/kKWY71cFeD7DTfgnUNI4QxkRu RY4JyOYgROABt/a8OU3yOKMocI/3TZHv8ZAsfyYys1SW1lrA3e9cXM1ezBnVvfmGsx 4Vr5PRf4PYjssXCFEkjOcgKTzKONXW8wgVv811rASHZlOjrTIWBuuVOUgpL+Sbq2c7 ZVKXX7m3WX56w== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , "Liam R. Howlett" , David Hildenbrand , Jonathan Corbet , Lorenzo Stoakes , Michal Hocko , Mike Rapoport , Shuah Khan , Suren Baghdasaryan , Vlastimil Babka , damon@lists.linux.dev, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 03/10] Docs/mm/damon/design: update for context pause/resume feature Date: Mon, 27 Apr 2026 08:12:22 -0700 Message-ID: <20260427151231.113429-4-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update DAMON design document for the context execution pause/resume feature. Signed-off-by: SeongJae Park --- Documentation/mm/damon/design.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/mm/damon/design.rst b/Documentation/mm/damon/des= ign.rst index 365e068a8dbe4..622d24e35961e 100644 --- a/Documentation/mm/damon/design.rst +++ b/Documentation/mm/damon/design.rst @@ -19,6 +19,13 @@ types of monitoring. To know how user-space can do the configurations and start/stop DAMON, ref= er to :ref:`DAMON sysfs interface ` documentation. =20 +Users can also request each context execution to be paused and resumed. W= hen +it is paused, the kdamond does nothing other than applying online parameter +update. + +To know how user-space can pause/resume each context, refer to :ref:`DAMON +sysfs context ` usage documentation. + =20 Overall Architecture =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B69C3346AF; Mon, 27 Apr 2026 15:12:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302762; cv=none; b=Tz958GkeM37LumQSGsw8AaXYC/6VfQyN7oEOIwbaso6H2V4E38/+hgeqwQylAOOGyJjqikGlHtdROzI49p/Lsq5n0W8EXB1YZHZRWvzb58lidzfPmzxxKYYgdDjeGI2Izcols6V3VQ0oiQ245/aBUO5XZGhsErbJJHG6kwO+Kks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302762; c=relaxed/simple; bh=O8n0uNGYuU+EcM7S/clzxsj2TzvWbNFjQtjX/Z2/CrA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=H/J8TXKUyRAhSuqsg78Iqw04/bIf6IJfDXWAPgkR+Ud+mtG6DPff5IfxR7rMk8M8nmV0Ok0dGHyzzjS7QfsBN8ZKQWcsel0fJcMStZXt8fBJmbOxr72zspS0LocmS0FtHeSH5yXBZoVwXdttXI0AOEpnZHKWBa3x+GJkkcy9RmI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gv4wDjq8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gv4wDjq8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A77CC2BCC4; Mon, 27 Apr 2026 15:12:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302762; bh=O8n0uNGYuU+EcM7S/clzxsj2TzvWbNFjQtjX/Z2/CrA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gv4wDjq8pC8MRYUp9YxDIQ9gWsfPychqKhZZqC5yjyusZ6ff9VMKcopk44UjgHSF6 mBCIXP78F9f2D7tsQVdhGGPTRaa/iOMW3SZfLCvJyoopRxkoltdEG16ODitiwn8qI8 BrhwdyUyT+otrpYI9SUcTRtOFQ74srhH8d8tB7DCuR2JdcU4/pxF+ly3HDWSketLZs lHbPouUda6elQAGc49DFl1f7oE6mbs2pAHv7wBB9jKpBCXmo6fD+rUiIzPAtSxkaPV qfyffWXOuvTaWY6L40CekFRFO4BdLMMnj/fLugA4VmYfdgFSJh3YsU7sjynUwQm3iz 4KP0klz1+ZQHA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , "Liam R. Howlett" , David Hildenbrand , Jonathan Corbet , Lorenzo Stoakes , Michal Hocko , Mike Rapoport , Shuah Khan , Suren Baghdasaryan , Vlastimil Babka , damon@lists.linux.dev, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 04/10] Docs/admin-guide/mm/damon/usage: update for pause file Date: Mon, 27 Apr 2026 08:12:23 -0700 Message-ID: <20260427151231.113429-5-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Update DAMON usage document for the DAMON context execution pause/resume feature. Signed-off-by: SeongJae Park --- Documentation/admin-guide/mm/damon/usage.rst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/a= dmin-guide/mm/damon/usage.rst index 534e1199cf091..bfdb717441f05 100644 --- a/Documentation/admin-guide/mm/damon/usage.rst +++ b/Documentation/admin-guide/mm/damon/usage.rst @@ -66,7 +66,8 @@ comma (","). =E2=94=82 :ref:`kdamonds `/nr_kdamonds =E2=94=82 =E2=94=82 :ref:`0 `/state,pid,refresh_ms =E2=94=82 =E2=94=82 =E2=94=82 :ref:`contexts `/nr_cont= exts - =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 :ref:`0 `/avail= _operations,operations,addr_unit + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 :ref:`0 `/avail= _operations,operations,addr_unit, + =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 pause =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 :ref:`monitoring_att= rs `/ =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 intervals/= sample_us,aggr_us,update_us =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 = intervals_goal/access_bp,aggrs,min_sample_us,max_sample_us @@ -194,9 +195,9 @@ details). At the moment, only one context per kdamond = is supported, so only contexts// ------------- =20 -In each context directory, three files (``avail_operations``, ``operations= `` -and ``addr_unit``) and three directories (``monitoring_attrs``, ``targets`= `, -and ``schemes``) exist. +In each context directory, four files (``avail_operations``, ``operations`= `, +``addr_unit`` and ``pause``) and three directories (``monitoring_attrs``, +``targets``, and ``schemes``) exist. =20 DAMON supports multiple types of :ref:`monitoring operations `, including those for virtual a= ddress @@ -214,6 +215,9 @@ reading from the ``operations`` file. ``addr_unit`` file is for setting and getting the :ref:`address unit ` parameter of the operations set. =20 +``pause`` file is for setting and getting the :ref:`pause request +` parameter of the conte= xt. + .. _sysfs_monitoring_attrs: =20 contexts//monitoring_attrs/ --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8EA732FA14; Mon, 27 Apr 2026 15:12:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302762; cv=none; b=AZMtNSywsuQqylh4G7tuRzwUC8IRVhuXmQqqQkQsq6/17aKinfBdabf4hHQVLk3/69P3UTUlQbmNilVISHwg1JdfkUsZQnnCIvn7+Gce6adNE14tQHTkWttav+hfaHs28/jBNn22miv73Q0NStP+elAAQ7ZIDIu4c9Ao0A38T0U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302762; c=relaxed/simple; bh=acrZio7SwTIWWe0wc5YY1SpE9hMTqgCgT01pPcG9A6s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a2x3uxLOQfma2mvTK6FYG3Z9EsVH5pNDZEzWHP1XcyGGpRIOe4WTDmfzmsZnbMKVEZ+Smf0qYPQv9uYZ5dZ5AhZriQR7TA9IcR33cO0f60UiCzUOdYwHQX0ezhO6+HZEoSCkqfUQ+5OQwRpasfIrhACZL/rC6L1he78LiOFDbG0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C5bNnQW9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="C5bNnQW9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1EFB2C19425; Mon, 27 Apr 2026 15:12:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302762; bh=acrZio7SwTIWWe0wc5YY1SpE9hMTqgCgT01pPcG9A6s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C5bNnQW9w6UfmygfZeMPknLdHTYsBUe+1OlK5Dgp2HD+DcUzmdn9PKZJEGpQ1Spe6 Akt3bXbTxUhgwbcstxO07AF9aIriIy65eDAMGuhsn8p25p1Wm/bE/xoL8n3MeRAFgr g3Zzcq4zNRsB0a/pJ+uVN5G3mpjU7DcmTjrXdY+xxqvkx2E34OhRn54wnvTx8rLogz n0w+a+ZYAumiZNlUcrSmbgmEipQDztN36RF1erxzL0uIz6abHHGcotBS65ehtYSMQI FYEVRVedJlDEFiLRVYxB1owgQzHCbHvzLdZaktoDdYD/r6CuY+VWllhtDYBwgoJWC5 ZQd3jG+u5ASug== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , "Liam R. Howlett" , David Hildenbrand , Lorenzo Stoakes , Michal Hocko , Mike Rapoport , Suren Baghdasaryan , Vlastimil Babka , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 05/10] Docs/ABI/damon: update for pause sysfs file Date: Mon, 27 Apr 2026 08:12:24 -0700 Message-ID: <20260427151231.113429-6-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update DAMON ABI document for the DAMON context execution pause/resume feature. Signed-off-by: SeongJae Park --- Documentation/ABI/testing/sysfs-kernel-mm-damon | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-damon b/Documentatio= n/ABI/testing/sysfs-kernel-mm-damon index 2424237ebb105..7059f540940f0 100644 --- a/Documentation/ABI/testing/sysfs-kernel-mm-damon +++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon @@ -84,6 +84,13 @@ Description: Writing an integer to this file sets the 'a= ddress unit' parameter of the given operations set of the context. Reading the file returns the last-written 'address unit' value. =20 +What: /sys/kernel/mm/damon/admin/kdamonds//contexts//pause +Date: Mar 2026 +Contact: SeongJae Park +Description: Writing a boolean keyword to this file sets the 'pause' reque= st + parameter for the context. Reading the file returns the + last-written 'pause' value. + What: /sys/kernel/mm/damon/admin/kdamonds//contexts//monitoring_att= rs/intervals/sample_us Date: Mar 2022 Contact: SeongJae Park --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BF103358BF; Mon, 27 Apr 2026 15:12:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302763; cv=none; b=mAT4U1YeWmXxh/fZpsY9WlzrKj4I/GY3I6LOqCcJ1Wyft7vXMSJSnriqaW0Bd5QGk4BkZDdTh2dL8KiSUoUPKzTvtr2Rt3awU6oAVhC3Vu/BFwLepphQ6UNlt2e8VKGp0MY1fwzNJFr4tXv0tVVti0wKdFn26Fxxv/X6oT1x3ww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302763; c=relaxed/simple; bh=K+t0IBDIG7HXVVaXmRTS++wFYmoNTkKzAJmGYrkNPTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=k76qg4Qlrm88ienDnyShsI7+np99KGinMFcOhq6o9dH4Os3h3LW/vBRLEeqxZACVPUqWrLpnXrn16F3DJkluqMptjsaj1MnTyIOJ6ZeiBhPlChFvIFsDRj1YLpat3IUHnYC8snIUlsQxTVu/h9WhUzMAB1Eym2inn1/5ZHUM6FQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uCWPs2TM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uCWPs2TM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4ABBC2BCB5; Mon, 27 Apr 2026 15:12:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302763; bh=K+t0IBDIG7HXVVaXmRTS++wFYmoNTkKzAJmGYrkNPTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uCWPs2TM/QVNIYTw3lP/RHTzg9Yz1/1Cw+itnweALv+X3+zIaJmnxAIV3CfP0ylGr svSJBCH8uK0Rfec9YrmuFCfVNHPzMol7N8ZXJP6Op3aMBy4vOp6vtb1o90yy7m0niQ Altnn9BQKqlSSArXo3TKY7TuTdTNzXo4chdh5jXCGQGIWTq/lIoum56JO33rbOn/2k GsNUvZUoBmwpPoM/+8QFz1G6GA7HgIK93xeLTNFGFSjA4cXUznXdALQrFnfuwN7T0Q cm4eQ9yaDgxEq43NC05eahxFbXliBobfzw1mcZby+epevwhB1Ax+ZsGLMXruVsSnQy 008KXxX35ngMA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Brendan Higgins , David Gow , damon@lists.linux.dev, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 06/10] mm/damon/tests/core-kunit: test pause commitment Date: Mon, 27 Apr 2026 08:12:25 -0700 Message-ID: <20260427151231.113429-7-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a kunit test for commitment of damon_ctx->pause parameter that can be done using damon_commit_ctx(). Signed-off-by: SeongJae Park --- mm/damon/tests/core-kunit.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h index 9e5904c2beeb2..0030f682b23b7 100644 --- a/mm/damon/tests/core-kunit.h +++ b/mm/damon/tests/core-kunit.h @@ -1077,6 +1077,10 @@ static void damon_test_commit_ctx(struct kunit *test) KUNIT_EXPECT_EQ(test, damon_commit_ctx(dst, src), 0); src->min_region_sz =3D 4095; KUNIT_EXPECT_EQ(test, damon_commit_ctx(dst, src), -EINVAL); + src->min_region_sz =3D 4096; + src->pause =3D true; + KUNIT_EXPECT_EQ(test, damon_commit_ctx(dst, src), 0); + KUNIT_EXPECT_TRUE(test, dst->pause); damon_destroy_ctx(src); damon_destroy_ctx(dst); } --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D47F3368A3; Mon, 27 Apr 2026 15:12:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302763; cv=none; b=rM6wkt8q32zo25JaeWJwhKiDhxY2BaXvceeuLRStg5ggLwpHKdJcPFk7DSei8It6nuUrwRDRDNtc88IOkoKYXmzQ1byktpcHaaCQhFc9Xp2kMc2zjemjddO3IuXO8kdh0KHjwaF8NyC0/0/lDeJfa+htJItYBY2JesRDufkVuJM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302763; c=relaxed/simple; bh=TJXeffpmshBn5e3s77gk9ewA/YmV5afqYkZ0L4RsmNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EaBszkZJwPmGKJiAZrRptFAobEL0r/WBIiM1wQOgfGiOJuVWVX0O5m55wooNYqqobkBYfg5N4AtWk5lwNs0TeKBFCbqAwW/AsjKpZbb5DHlL8H8rheLbwzRGdMBlb1ZvNn7BuSUwotkRQkzdDPeSsqldze7GOgadmlLeJ6Bk/X8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qIxHwC7j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qIxHwC7j" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F1F2C19425; Mon, 27 Apr 2026 15:12:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302763; bh=TJXeffpmshBn5e3s77gk9ewA/YmV5afqYkZ0L4RsmNM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qIxHwC7jpSTJLYHo4UAK3o1BQt0TxmjOyiTaW/8vKTIqO1Fi36gO4inEtqu7OvaYL ea5lnGOmDsGrFslRP0dMXV6FS1c1TSBJEPDDYJ1fvVlFB8hEYiZhE/W0o+38XaNpNp AWv+FPlqmqABpRiVtWo/UYn4na6zdhN4vAhUZMi7xmslSJCpilxtXYvteLPqpoB7LW DtRukm/NtPKKGOueXTUC+nDuEjwiPKrU1MOnubP19Zrrfwczwuc/1L4NhDbv9FZ0o/ HMH7+YqNp6fOIiHpP2q1NRZAYnTDK0SciY5aOW5MpRkwrgQqE1B+0rDukd5x776b/Q D0bXUjxFLJRjA== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 07/10] selftests/damon/_damon_sysfs: support pause file staging Date: Mon, 27 Apr 2026 08:12:26 -0700 Message-ID: <20260427151231.113429-8-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" DAMON test-purpose sysfs interface control Python module, _damon_sysfs, is not supporting the newly added pause file. Add the support of the file, for future test and use of the feature. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/_damon_sysfs.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/damon/_damon_sysfs.py b/tools/testing/= selftests/damon/_damon_sysfs.py index 2b4df655d9fd0..120b96ecbd741 100644 --- a/tools/testing/selftests/damon/_damon_sysfs.py +++ b/tools/testing/selftests/damon/_damon_sysfs.py @@ -604,10 +604,11 @@ class DamonCtx: targets =3D None schemes =3D None kdamond =3D None + pause =3D None idx =3D None =20 def __init__(self, ops=3D'paddr', monitoring_attrs=3DDamonAttrs(), tar= gets=3D[], - schemes=3D[]): + schemes=3D[], pause=3DFalse): self.ops =3D ops self.monitoring_attrs =3D monitoring_attrs self.monitoring_attrs.context =3D self @@ -622,6 +623,8 @@ class DamonCtx: scheme.idx =3D idx scheme.context =3D self =20 + self.pause=3Dpause + def sysfs_dir(self): return os.path.join(self.kdamond.sysfs_dir(), 'contexts', '%d' % self.idx) @@ -662,6 +665,11 @@ class DamonCtx: err =3D scheme.stage() if err is not None: return err + + err =3D write_file(os.path.join(self.sysfs_dir(), 'pause'), self.p= ause) + if err is not None: + return err + return None =20 class Kdamond: --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3C6A3382CF; Mon, 27 Apr 2026 15:12:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302764; cv=none; b=IRHdgShZFr/uSzRWeLVZQc3z0ZQQlBLtSOdo9UXHyaQxeCHdngFeoM7OlICBFkSuGMFasgbG6I78+1hkxLfHSRxotyiVJt35sw7KQmj55lGejrdEXG8ezfQoC+y/CvVDn7HJQja+L1X7W0AyoocS2eoajIfKjkOm05M6n0q8Y8k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302764; c=relaxed/simple; bh=9O26QoN+V9tNeSexEgjKx5Rwm+ySmwIIy3Pdsz7ovf4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HnDpnstpaDE3HlQ+JfB55CjVDOOM9Lp2hmRV7GzvwygF6NiaohBfce/dgkuLtmUYRjolcSZ3h9Cgc+yidBx6RYKmP4+/KKBYS9fzbKi7LmSKeVqmk/ZIgD0fwjFR1BRkS8EakvM07bMx6xPVlrS57NFZmVCo2gjRnmQ19ATJIog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GHvaeA9B; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GHvaeA9B" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7DB30C2BCB7; Mon, 27 Apr 2026 15:12:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302763; bh=9O26QoN+V9tNeSexEgjKx5Rwm+ySmwIIy3Pdsz7ovf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GHvaeA9B29EOfNwhZ2BklSXm4t/Hcqa3SiTUb2DUOZDFGSxRDTO6B7qmoBVRub2Ve O0HzutMREEg6GOFwc0InVJ4mlzGmbxWNwybN/i5sFNh9wWa5PSqIuBiUiUApIeQQdz NZF5YN36/bPjjd5NttoNMCbxS88s2WUmdm3P91MzNlr/mMOFth39DNGPpnFjC1dR7f 7CuKeGpOaylKpV11mk2LwNVJRALqRuhdlAUpVKkMyEb6PaqbTLaOHei8Dg8PvLTYhw hRIoESfZzSpHRUwj3Nl2DMgbzC2rdZjwm7ncKz3Y1MNPYp2MRfQ9GOc1gsyvSvjIWc Aj4ogr0+dgIIw== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 08/10] selftests/damon/drgn_dump_damon_status: dump pause Date: Mon, 27 Apr 2026 08:12:27 -0700 Message-ID: <20260427151231.113429-9-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" drgn_dump_damon_status is not dumping the damon_ctx->pause parameter value, so it cannot be tested. Dump it for future tests. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/drgn_dump_damon_status.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/damon/drgn_dump_damon_status.py b/tool= s/testing/selftests/damon/drgn_dump_damon_status.py index af99b07a4f565..5b90eb8e7ef88 100755 --- a/tools/testing/selftests/damon/drgn_dump_damon_status.py +++ b/tools/testing/selftests/damon/drgn_dump_damon_status.py @@ -200,6 +200,7 @@ def damon_ctx_to_dict(ctx): ['attrs', attrs_to_dict], ['adaptive_targets', targets_to_list], ['schemes', schemes_to_list], + ['pause', bool], ]) =20 def main(): --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DFE1332918; Mon, 27 Apr 2026 15:12:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302764; cv=none; b=hkbnF7WnuLrQrOVhnimjJ8pY5/uX/kbRdgRrlL7dwd7L0c+McTACAhTIf66IOzyrT/D4rPRPNTgF2o5DgNBuoXV62MVLxAfsqLKSZIaom3ZY/YF4gxvZ/mT2YB9cdqfKOBmnont3m/scyseWRDvcPB4fz90jfMvMelFg39MpKAI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302764; c=relaxed/simple; bh=+CPx6XCIAlUTHv2UDUveibU84QomoA79cOtNOXMz0F4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nYR31QikO1ICimMkV8VLUU/u2qq5IItLsmOFChr32ATcMr7ncYY31R6Qt0IErKCUK7oy9PLQFkTsrnmqSscGotkaUOWIGVT5i/qr5Oq6wt71o4sGYpyP3Dpfi8EKyiaNqZOGmf3HMKKC3WZ3JPqiadbLAhEOZycB79IzL7y3jYo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=T0+kdXmE; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="T0+kdXmE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DBA46C19425; Mon, 27 Apr 2026 15:12:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302764; bh=+CPx6XCIAlUTHv2UDUveibU84QomoA79cOtNOXMz0F4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T0+kdXmEj4DQIjQ/GIyo9wxd8IEjbDZ4/fFiVGkdnvnCZVRdIJARPqoBKpGn1Kli5 jzMdP3lqYhIzek0d/6R9OibhGx72nqPv9oxC0wnqPZiSp+DkmbPop8aUNlTfiv+wsd PK6590bNuJBWUCVz+j1ywLYHQqV4l3RzvUdDM7dhGvrWXe5Shmi050HXgYZ28iDpGY HTXBYeLFzYcdKGd14guukErq7f5ccq0b1jYoIjCjGgNSU5KLdpmlMXG0nmusX+zD/g QwIfvkO6LT4/961FgTWgpy9v+DwzUQYqbVvVCOx2xJIMXy80UAtaipfnxIJc3JNXAW xNJVWjzPLYw8A== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 09/10] selftests/damon/sysfs.py: check pause on assert_ctx_committed() Date: Mon, 27 Apr 2026 08:12:28 -0700 Message-ID: <20260427151231.113429-10-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Extend sysfs.py tests to confirm damon_ctx->pause can be set using the pause sysfs file. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/sysfs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftes= ts/damon/sysfs.py index 72f53180c6a88..5a5d2f2774566 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -191,6 +191,7 @@ def assert_ctx_committed(ctx, dump): assert_monitoring_attrs_committed(ctx.monitoring_attrs, dump['attrs']) assert_monitoring_targets_committed(ctx.targets, dump['adaptive_target= s']) assert_schemes_committed(ctx.schemes, dump['schemes']) + assert_true(dump['pause'] =3D=3D ctx.pause, 'pause', dump) =20 def assert_ctxs_committed(kdamonds): status, err =3D dump_damon_status_dict(kdamonds.kdamonds[0].pid) --=20 2.47.3 From nobody Wed Jun 17 06:03:31 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7B8D33B6C4; Mon, 27 Apr 2026 15:12:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302764; cv=none; b=b11V8hBVrCHTTvrokv1qs6sS2wugtemUMXBYcOTQ7tjCW8Gs7vXsa89Sp3/VugmtGX2HoMyz5wGCihviDbqpVx3Jy+hp83hacfOf7QOPLaHnPw52vpbtpU1YD2Nj5X/+JE3MYn+q6WV1aaBJwHXL3xJby6OvdtF8pDp7YAdFvAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777302764; c=relaxed/simple; bh=o+aCOZ8LYgQ7c4SiAM/QTBFJ12mubN4z21IkEnGUqdc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y8FnNXcavPY+QAOmE1LvRBoyzejUbQUEp0WjtOUj6f0rE6f8WiEFrQqLW75wjYfDOTEEvSMEP1XOQdBIlQpNN88h9HdgkDMI7arR61vvP6JI/HBFeElwERDPeWz9eJv2dOG49maZ31sm9vcCy0M5Usqgli92d4eXmNNwhcu0tJc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VHFWsTLk; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VHFWsTLk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 486A5C2BCB7; Mon, 27 Apr 2026 15:12:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777302764; bh=o+aCOZ8LYgQ7c4SiAM/QTBFJ12mubN4z21IkEnGUqdc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VHFWsTLkJlDEZTGoFpJGGzf/s9KTchh9p7s1uxrbmNVq0FWxJpFYg/L8M0nKbV+/s +HcZRFvRWd60ojYtA5QpTNHejdqv2BGsfB5CMvMD6iXI75gp0mD9aYKzyo00ELcnp6 nphwpWSiM2T+6KMjb+ErlzWxX/AAc2FtXXPwmXV08rl4rIFR1hfid4ypwLzPSaT4DU Txib6HpFfBA1KNBycIDQHpkio3QxdpoC3ouIK5oUY0/xRZYBI8axpMdbn8V0oIgBEB zx66VyyAGggKYhcGdBxXd1rusVdASrngnnV4vOpfBb1Ibfa8LGuH68PdZMsgB3/iY8 hNnl9x9vw2+yg== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 10/10] selftests/damon/sysfs.py: pause DAMON before dumping status Date: Mon, 27 Apr 2026 08:12:29 -0700 Message-ID: <20260427151231.113429-11-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260427151231.113429-1-sj@kernel.org> References: <20260427151231.113429-1-sj@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The sysfs.py test commits DAMON parameters, dump the internal DAMON state, and show if the parameters are committed as expected using the dumped state. While the dumping is ongoing, DAMON is alive. It can make internal changes including addition and removal of regions. It can therefore make a race that can result in false test results. Pause DAMON execution during the state dumping to avoid such races. Signed-off-by: SeongJae Park --- tools/testing/selftests/damon/sysfs.py | 38 ++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftes= ts/damon/sysfs.py index 5a5d2f2774566..387286dc449d5 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -194,18 +194,55 @@ def assert_ctx_committed(ctx, dump): assert_true(dump['pause'] =3D=3D ctx.pause, 'pause', dump) =20 def assert_ctxs_committed(kdamonds): + ctxs_paused_for_dump =3D [] + kdamonds_paused_for_dump =3D [] + # pause for safe state dumping + for kd in kdamonds.kdamonds: + for ctx in kd.contexts: + if ctx.pause is False: + ctx.pause =3D True + ctxs_paused_for_dump.append(ctx) + if not kd in kdamonds_paused_for_dump: + kdamonds_paused_for_dump.append(kd) + if kd in kdamonds_paused_for_dump: + err =3D kd.commit() + if err is not None: + print('pause fail (%s)' % err) + kdamonds.stop() + exit(1) + status, err =3D dump_damon_status_dict(kdamonds.kdamonds[0].pid) if err is not None: print(err) kdamonds.stop() exit(1) =20 + # resume contexts paused for safe state dumping + for ctx in ctxs_paused_for_dump: + ctx.pause =3D False + for kd in kdamonds_paused_for_dump: + err =3D kd.commit() + if err is not None: + print('resume fail (%s)' % err) + kdamonds.stop() + exit(1) + + # restore for comparison + for ctx in ctxs_paused_for_dump: + ctx.pause =3D True + ctxs =3D kdamonds.kdamonds[0].contexts dump =3D status['contexts'] assert_true(len(ctxs) =3D=3D len(dump), 'ctxs length', dump) for idx, ctx in enumerate(ctxs): assert_ctx_committed(ctx, dump[idx]) =20 + # restore for the caller + for kd in kdamonds.kdamonds: + for ctx in kd.contexts: + if ctx in ctxs_paused_for_dump: + ctx.pause =3D False + def main(): kdamonds =3D _damon_sysfs.Kdamonds( [_damon_sysfs.Kdamond( @@ -303,6 +340,7 @@ def main(): print('kdamond start failed: %s' % err) exit(1) kdamonds.kdamonds[0].contexts[0].targets[1].obsolete =3D True + kdamonds.kdamonds[0].contexts[0].pause =3D True kdamonds.kdamonds[0].commit() del kdamonds.kdamonds[0].contexts[0].targets[1] assert_ctxs_committed(kdamonds) --=20 2.47.3