From nobody Mon Apr 6 14:55:01 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 B0BC1397E9A; Thu, 19 Mar 2026 05:22:07 +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=1773897727; cv=none; b=tDsVvY4QX8ab26mQNMXFNsLFOD9feGXiqduBmpZCo4Qhwj/2lrYUoOC5i9Y0WzYaYqrq+XPgb+OGO+JfzZ+4vlXcIQ93PU+02CsW1gNU8TlpRN0fX4NfIRMpJFtMtc5Rfje7wM2U2JmEw6nK8RI1WcusE1hUuOh0B241xTWuamw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897727; c=relaxed/simple; bh=/zdFcK8+rlUNIicMSIFp9XoXm7KV0c/o3PoVHHBf0RU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ncDN1oWR/HOorDfNHajulCIe6u12Qv0pKHQ1lf+o0Hwioa0se4AmsYGvKNgLNdJVqFqar4UJf+sYK/SApPewRVnrM8z+X3ej3jsdLje7mH6bwacKedcMqJR0A18BM9gtc7zedp3uMXKVYaXpwWP+RggyAL+J6e5V/SiaU3LBrzM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NBhtADEU; 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="NBhtADEU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41ED6C2BCB1; Thu, 19 Mar 2026 05:22:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897727; bh=/zdFcK8+rlUNIicMSIFp9XoXm7KV0c/o3PoVHHBf0RU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NBhtADEUlW8MOKFTIYt/NyE7RkdX0oRjJ8zOtIIzeBYu0JQ6bRJEuy1aioKza4eb+ k/Agmpa+S3JyPFK6znbuyKEI5o75f4ScDOltix4MAQ+jeXprd3I5zRa27nXEu7hcad jeJqto51aWv0IBSLgJ/1x4/VuF+Qc3IyrhB4kxWF6wdqp6+0hoICu34PlOZBcJL5rY CZzoq/6vE4vM/Cy7jpMKT0PdOnNru/88LsRL9LjpwpVky8CTd5nKNyT4UEOmPzL89i OxbTkAICViJcf19mlTBTrAWG2n59dPBYIJYP3cPsJ6MzRm8swXL3GGzKuQOHanwEiR 0xL2PBh3FzVtg== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 01/10] mm/damon/core: introduce damon_ctx->paused Date: Wed, 18 Mar 2026 22:21:44 -0700 Message-ID: <20260319052157.99433-2-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 3a441fbca170d..421e51eff3bd2 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -811,6 +811,8 @@ struct damon_ctx { * intervals tuning */ unsigned long next_intervals_tune_sis; + /* pause kdamond main loop */ + bool pause; /* for waiting until the execution of the kdamond_fn is started */ struct completion kdamond_started; /* for scheme quotas prioritization */ diff --git a/mm/damon/core.c b/mm/damon/core.c index 339325e1096bc..0b6cb63d64d0e 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1331,6 +1331,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; @@ -2978,6 +2979,14 @@ static int kdamond_fn(void *data) * kdamond_merge_regions() if possible, to reduce overhead */ kdamond_call(ctx, false); + while (ctx->pause) { + if (kdamond_need_stop(ctx)) + goto done; + kdamond_usleep(ctx->attrs.sample_interval); + /* allow caller unset pause via damon_call() */ + kdamond_call(ctx, false); + damos_walk_cancel(ctx); + } if (!list_empty(&ctx->schemes)) kdamond_apply_schemes(ctx); else --=20 2.47.3 From nobody Mon Apr 6 14:55:01 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 B0B2E397E99; Thu, 19 Mar 2026 05:22:07 +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=1773897727; cv=none; b=jDYSTbQvMtNUd98lObGIzyurVsrgAJGdKVDhqExqrN5o38lTmyGE6/Gn1DtkKB0DIfrfOHjbkJ+717gMpRhjoZ1l941ybH8AXk+Jnwky6CDmI8oxURUi9ASmzDdAJaQJWNitYRPIBhisyELJb1q73uHFcF7Fqqdkx1yzAuJZgAs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897727; c=relaxed/simple; bh=MqEq3gnpER/1i109FUnzNmYJCrHCG/6rdnfY8eFpkpg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H2vGwqnkqGa/nZ42hRLP9JhIFAsk4rboeoZHl/7w9UDFs/86qlJFc4DtoACjeIX62yONOnPs4j9dMCHQMnyzngXG34tlnVe6+fk2GpRFPR5lHQkBLtpwt91UehoN1OTcBIdvE3Ljh9HBh6yFUoeGjEh2Owt6F/I2/cYis3V5FzY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=R3xmC6P6; 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="R3xmC6P6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 751ACC2BCB0; Thu, 19 Mar 2026 05:22:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897727; bh=MqEq3gnpER/1i109FUnzNmYJCrHCG/6rdnfY8eFpkpg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R3xmC6P6OTHd+Fs+mCFy/jqh14jFnG3Fl4q5rjQ2c2rio5VNHnB87XL87/U51kLyb nFxYMDbfULAUqYw2HCA0U5ebdHOsRLEGimnW1d3dRsf0aQvqJKcmjXTsWzbyC0UdZL ldsFPoY6Vnvy4iSeU99JIFEyvIHPWWcNQFSR7Ggl5DrON5/LtpuxRE8s5isI+kj2O4 ev/yAh9ObnSHMXiFlOGBHnC7Byd1MmL4+Bad4KiO1KiR+tfqXBufseSbcauIon5KD5 yWruBU376m3NO9oWFKi5nzwtHZxkEll6vXNu65GvcUTYv6ZomuH5sqP1XCqr134E6l bUvoUggz7NKWg== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 02/10] mm/damon/sysfs: add pause file under context dir Date: Wed, 18 Mar 2026 22:21:45 -0700 Message-ID: <20260319052157.99433-3-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 576d1ddd736bf..7bd42dd8c4a73 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 Mon Apr 6 14:55:01 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 79EC939934D; Thu, 19 Mar 2026 05:22:08 +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=1773897728; cv=none; b=JAMKP+BhHTy1MoGby71BqBillWuVoWGP7s8ncdricRMTpVoWzEo78SK2vfl6uHyIsONTQDmIdZV4SCh7peOSXkB3bqxOsi1rKh35iCLlneIAud1fCzFcL4trRDPECDhwr/T6ByQatnF7IfSaKMgebhiMeS6htV7fDo1e3t+PAY8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897728; c=relaxed/simple; bh=Xzm+JNkj3Yeb12esLxd9yBTp5fRgZ5ByNKV19KwHmDY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bed22wI2I0q5FQb3y1ZeSzYtm3C0Hy93BmUGH08ZQqZ/iAKoc4OaDTYb4eP2h8XR19CuQs6WJwB5fhFyJE4UNl6uHvHi2VTFpmRbhoYJkWFYzH77FFHuzFUAXGVdtlt1MGv0EsZTS5NrtO0gVBg0pbeQp+/1eB9+iESA7YmAxQ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B3czYL5V; 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="B3czYL5V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A83E3C2BC9E; Thu, 19 Mar 2026 05:22:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897728; bh=Xzm+JNkj3Yeb12esLxd9yBTp5fRgZ5ByNKV19KwHmDY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B3czYL5VHrXtOTWvqFJCV/UmAYYYkP5VakJDq+d/YxslDrCYDJlErt4+uYhXOc1Hl TeWisEWjP1O4bcNYk127D7J9mPz+gtVQFJIpUlNp5vcKGWBLdp91ACjVT4SSAoJ+Tl bYSyUyoFVN2m5GqYnhIi+oGlVnWZqcrw7EWhgG6DfA9q6fUJxUtQv6DYA8/cxjWUcE 5w1tl8xpr5WAfr7iDajp1UAiQkSHM48IgvbjropwwwfHE3LwvutLp2ESYbDB0G1QCY Ucwc+MJL8Ueesq6q2COj2EJJ++KpObfLLKSVgumgde7H0gS4gfLjg9hAi8vSxhujhA lWEmpYhpinKOw== From: SeongJae Park To: Cc: SeongJae Park , "Liam R. Howlett" , Andrew Morton , 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: [RFC PATCH v2 03/10] Docs/mm/damon/design: update for context pause/resume feature Date: Wed, 18 Mar 2026 22:21:46 -0700 Message-ID: <20260319052157.99433-4-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 838b14d225193..e2e4fe3fb3986 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 but only online parameters updates +including resume request handling. + +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 Mon Apr 6 14:55:01 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 79FAD39934F; Thu, 19 Mar 2026 05:22:08 +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=1773897728; cv=none; b=XTEWfNoMlKN9J6p7vdxNps6Qodkp+zxr012cYoSz5pVKDIKUghj+pP4X+xqoo6D9u8M/xvDK9XhsMhTDcVp8Fxv4EFysnbMpJYlCI9lbAPBcwQ33MJSrzqEd12ySpUHrzzNR7fDPV2TxC2Ex3OVhnLMzmld23zmybYIZ0q6U5yU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897728; 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=kzpIiAIC2FGi3K/jOvkt8sT4PUeYgsxv73JhnJKXYJ9n0SUWeVBlOf8lrT+HRLUKQQwvSlKxEFwebykwsIYZb9Ug1WWEtC2YE4ro1EETLTtRns+iJ5LHI35/ZJoMIqVQqs5+xMni881HbRkBlwQhNLVwT/oBdmkAgti8mOhPcok= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TX3/i5dy; 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="TX3/i5dy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 183DDC2BCB9; Thu, 19 Mar 2026 05:22:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897728; bh=O8n0uNGYuU+EcM7S/clzxsj2TzvWbNFjQtjX/Z2/CrA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TX3/i5dyN4nBOy3OeHVTRAA3G44kn7OhV1sX6uq8Piw6dCKx1iW2YEn61XiTWkk15 fp4zPAAzbuH4PSf0XrsF2DUSIcjuv19ZENxo+k/JymOjSYFHL8YNFiWA8EJ6uiA3ds VrKHLRykGKba9O07lnAV1F39aa7mXYNr4sLMjv3y+Nvpf/b40Nlz2+gziNHMapicRN 4Joh7WXFkRwQTRFT45YOZ+nkDl0hIbTG+5bk+6GQtlGcZZsTVKzAlUYCA+X0E355Bf YBviR/sD5Zqf796TYKgV47Ct/0pHQxcrfymOgE7STBcGhVOIQ2kgGfQ4d0MayHRS8X ueQ+my7+I0BAA== From: SeongJae Park To: Cc: SeongJae Park , "Liam R. Howlett" , Andrew Morton , 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: [RFC PATCH v2 04/10] Docs/admin-guide/mm/damon/usage: update for pause file Date: Wed, 18 Mar 2026 22:21:47 -0700 Message-ID: <20260319052157.99433-5-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 Mon Apr 6 14:55:01 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 A8B35399372; Thu, 19 Mar 2026 05:22:08 +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=1773897728; cv=none; b=npC7NqOd+kwoph5I5A7nAdsUbJznw9LnWwLxOfmWPjQJf20SJ8eE08IOVLqz6qP/ZJk0dhkfCHjLr6xgk8Jx++bbZsy1mQBtPcufr2gmDheCn/tQuzeIlyU8f7eBrE9q82tNRGeTvMhUolXGv0kqFB4/yrgOr1l0kiBXvahv0X0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897728; c=relaxed/simple; bh=acrZio7SwTIWWe0wc5YY1SpE9hMTqgCgT01pPcG9A6s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RINjHjL/RAseT+cKvxYkGaU1s1EjCp1Lilo5hIjdHNXruf1bpRb+dPe4ZbOurKtKv3sSmShkAcSATBXW77WJyVrd3Cg0VEYjph1eDKrtwxnK7Hw2SyAtmhwyEKqkmZgsnKtjGpR0tWJPtOYO9fa1DvA1VwXF+B7q4IPq3FQXWAI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uagNiGAx; 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="uagNiGAx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B52FC19425; Thu, 19 Mar 2026 05:22:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897728; bh=acrZio7SwTIWWe0wc5YY1SpE9hMTqgCgT01pPcG9A6s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uagNiGAxETvojRrk7as8iLji3zWm7q9RFc79GcLFgZssck6NDsuRBowVLTVn2K+P7 NP0/tAvIoRmJ0ggHCeZiP8W7iFRe2kkRiOe1zUSSj8qOs3g+24UnZPIR0Sz1g1j++8 QvnMSjwh4WTf2TI/BsC6AcekX8X4kb5qFzKhlHv2qe65rx/1pPu7Gi6kdk9WjTjhWj ROqKIb3YCOROpO3FdvC+ClnOIOGuWlDzQ5TZwQSyNufR9a+vkyNdF8pEOrGSN26aXG TDUz6TwaOc8Zz3OPunFBnYpTn8DD+aHIwBW56DZf7wEKY2EqIhIKAQsRE/+7ZgW2iQ 68gbVmMq1sX9A== From: SeongJae Park To: Cc: SeongJae Park , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 05/10] Docs/ABI/damon: update for pause sysfs file Date: Wed, 18 Mar 2026 22:21:48 -0700 Message-ID: <20260319052157.99433-6-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 Mon Apr 6 14:55:01 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 201AA39A7FA; Thu, 19 Mar 2026 05:22:08 +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=1773897729; cv=none; b=XuxTJUGTCvtqDQow76G03C+yKaMBXVpi+BEM6W3nxeBfIjm0b5xsXy4Vn0IubyhKRDB2jszhBiWZkAqiudYTkbwJdiIjOv5125jTytvCJEcgRt9h2UWgibmuxRGjCP39dOvjZwUfJsh83snHsZjruJN1wtUxUfwOp9QaaOzB2Nw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897729; c=relaxed/simple; bh=K+t0IBDIG7HXVVaXmRTS++wFYmoNTkKzAJmGYrkNPTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DZj5BeBcsKH1PQHvX+Ohu44ShIM2TV0G+Q6xfXtdFRlrf+AN3YQzlz5kuYSWdtCY11lEVUkOD97tiFVPrp7jAFu42Rw0Qcczjuboavsvy3q2xgOK0KiMIn/DSIkYH/UCzun56jd52ihTzFapQd7EjABqdcs+hqJQuY+HOUzoFlQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TgLxCuk9; 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="TgLxCuk9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AB54BC2BC9E; Thu, 19 Mar 2026 05:22:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897728; bh=K+t0IBDIG7HXVVaXmRTS++wFYmoNTkKzAJmGYrkNPTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TgLxCuk91/AfmruwTg8iwYOcOr7M5FuG8Vnd6YLTo08UqUEKMb5tuFkxeWxOwILJB hAy9NibPiGesX0iPpBBAmVubQFPJ1Y0s1tNO8NpzP5tLDTm5XI3Ed9k6vZ9jq/DB9B Ug5vf7clHmxTNk8qDI+Ov7UY/T83TmVRp8OJWBxCs+vqNzCfZ6zN+GRHMBszydy0/1 lSz+/SEpD1mhK3iSM10/7ukQseSehDtJ53dlZXVxTJHn63pie68h4c6jYaIA5Wi/ZB yDntw1hMgeeDjnQ0rtJ7YIsblivjAotOanGSAT7Cc2vkw2e0/MZ6plm1D1llz2sOvC PYxotwruumhgA== From: SeongJae Park To: Cc: SeongJae Park , Andrew Morton , 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: [RFC PATCH v2 06/10] mm/damon/tests/core-kunit: test pause commitment Date: Wed, 18 Mar 2026 22:21:49 -0700 Message-ID: <20260319052157.99433-7-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 Mon Apr 6 14:55:01 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 364ED39A807; Thu, 19 Mar 2026 05:22:09 +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=1773897729; cv=none; b=Wdp5KDXzTRZif1HqEDGrLjOru55qSFyq18C+bITL7G1ECr8jW6KbBLZ+yusJRQrYMOfaI6rOsAAsajS+ELvpA3UIlbAXsWHhv8BXI9IVeGxpZNIlPK2tipeJjh9rBe5ejot9T6WFxOA1Es7OfzZw4ae+JSxFRHApL/8ORfWIo98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897729; c=relaxed/simple; bh=TJXeffpmshBn5e3s77gk9ewA/YmV5afqYkZ0L4RsmNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r4zEOxAcgeA+g4uIw98j+xnIBNZdrwroUys+jD12YO/4/q9NRpqbWLSAHgVJXtUTxbD7GIHNq7/mnS6b+8rhQL4sRYDDrW7Rp4ehyBZPWzZIIDlXiNy6+OVeEh6NorwCtHwbVLIVJKucmbPnAI9DHeP699Gv9W/FVSBzTZLALhU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HP+831u3; 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="HP+831u3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EF939C2BCAF; Thu, 19 Mar 2026 05:22:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897729; bh=TJXeffpmshBn5e3s77gk9ewA/YmV5afqYkZ0L4RsmNM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HP+831u3C18QuYGn+8t3T5P3MI5t8JSc7dy5v6wh8t5I2JM7wDsvYJtcnd2CG4WXb Si2jJfp7u2Y0Ucbusoj+kXFBgx5w9aRc/CP/EMtLepFRkYcs9AsXfu5r4OX6ZxFul6 IL23kIeOz4DJRkZSsOFTisjdFe4/Ny9iC35R4nPcr+2yQ2CQsR4IgVZ7Mz5pg/taUs jBz5XHpoCVL4py3uf4nX+TCbB5O6G3GK7TcWKZBfBsDXhMWeS+O38lNSfvADomo/DN fizmoAkzJfawSrgRSVLM9PWp0Zfx3FDRVfDfsyUXH0PadUzjhDVz6RQZ/JpbOpxhCU AdPVJbxg5atgw== From: SeongJae Park To: Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 07/10] selftests/damon/_damon_sysfs: support pause file staging Date: Wed, 18 Mar 2026 22:21:50 -0700 Message-ID: <20260319052157.99433-8-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 Mon Apr 6 14:55:01 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 7ADAB39B975; Thu, 19 Mar 2026 05:22:09 +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=1773897729; cv=none; b=hmS6yVGu7u+P7uRAV8sXqp7fzQYnVkexEf32ZCNbjmK2eHmEFP2KOvz/ayufpnKyQALzy5KkmkJzHTbdNDJVw3KAnsdVqajAcVS3Tzg+jd1bjAFkuWVm0coBICpfaT1SwZg8w9RIRqQ1I7sNCk/eHIo841GAfs37e5gnhaYhKmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897729; c=relaxed/simple; bh=9O26QoN+V9tNeSexEgjKx5Rwm+ySmwIIy3Pdsz7ovf4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VP5n++L7rm4iO0wI8F9AH6o0ccKLIzEN4Xbe1rIyqlPaacFefQiSSiYLol9yV2/eMUuH8ccEWWLTImC/IKZOAACEXoam0kUtuaJTqpd8nbtX5IWrbghA3owuSVDe+skO4pB1P56G9Q/YwYgi8jtYrXmfObCu4CxIqb8xMY1sELo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q2TPMNRk; 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="Q2TPMNRk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 340DFC2BCB3; Thu, 19 Mar 2026 05:22:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897729; bh=9O26QoN+V9tNeSexEgjKx5Rwm+ySmwIIy3Pdsz7ovf4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q2TPMNRk3SQFvWn3IXoQNGAZczLvJpdEKEPh13gBFvXGyQ4+SPzZNesS6RWSv7CfQ ALMgqHWpyRzbGS3qEFMk6VvM7JhXGGU6inqSSIyo1UUsg10kiSws/FyB9tcwg/huiB eAJhSr9CyB/jZNeEFwNFP623LpBtAo5HRD4+ZZzRkgoEWsKb7t2WPZPc8JOwdklpvt AyqLSKccVf6ewktCkY2KfAE3aFOd5ys2HNRihi7vG38hkzS4nhfevXvUxcu9B6LYEp u/WjZEgxjAs7+JzwztOKWXkzHt3wRQN9yb+tVPNBuFkxTbU11DKoVTSpDD1+nBz0rN 5HOi9MMGNdbWQ== From: SeongJae Park To: Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 08/10] selftests/damon/drgn_dump_damon_status: dump pause Date: Wed, 18 Mar 2026 22:21:51 -0700 Message-ID: <20260319052157.99433-9-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 Mon Apr 6 14:55:01 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 A627E39BFED; Thu, 19 Mar 2026 05:22:09 +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=1773897729; cv=none; b=U5/RgD8N+rbzdh56VA4h6eMgyoVhdLBcoFOqpcRqlRMjdb7cMHAnkL5stzhPfLFgGOZsL/gsr/YoRUWHTIEtF2Ba08IAUrn/DxF3Js5xIO/ejDdjyyMOh/0IbfBsfdFR7uD4kW4RAM6BZox41B4Nbz670x3ELj6qrQfUiidp94o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897729; c=relaxed/simple; bh=O/0+EEFKC+kJrViTx1hpFrUcUp3ITetgY1I7Ly2ASvo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aN5qIyO9gLf/BHPtqRzpkJM4Y5fojo3meTzF6j57r2+iiFDpJQsch6bAl42hHqVvGhpeZ9qoVP+ZlrDJq/fdF0cbU5n53lJH5k54v2qCch3WgJjiQXWe049AmNAksdzXsK3CBPGKHE9aQLL/TL6Zi1ZoDTfOMeh6n6wzseolSFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JkAeejlL; 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="JkAeejlL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B41DC2BCB7; Thu, 19 Mar 2026 05:22:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897729; bh=O/0+EEFKC+kJrViTx1hpFrUcUp3ITetgY1I7Ly2ASvo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JkAeejlLb2INZGMTagXHPmD0+O8ZKjh5Fd/EXV1aG2pLl/g6jZPq1Mrvo6C3VVz3j Dtoq9xah3y+18e9JrM6ZFUsBbhxCivwTPWNWIF6kjZM7na4WuYT1sGb30QQFU1uk5b 1DP7vpyqeTlB91DbbkaQNDCOtT28PYNWqaoS2ZomHCPkaUKmsTteNIEgMeHcK9NXj4 ONRxfJTwwUpw92w/suTNZEna0WTn3Bwso985LWfWJCHIr3HwOSSUcPlYaUd9vdHEo9 F+rKzY9X/L7ayyFot0FhpuPsVyQfRUw1eWZp6UczBsqqJJAoicDXrOanc3624URkSY 4hLVq2xQdY0Sw== From: SeongJae Park To: Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 09/10] selftests/damon/sysfs.py: check pause on assert_ctx_committed() Date: Wed, 18 Mar 2026 22:21:52 -0700 Message-ID: <20260319052157.99433-10-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 3aa5c91548a53..e6d34ba05893f 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -190,6 +190,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 Mon Apr 6 14:55:01 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 E84AF39C00F; Thu, 19 Mar 2026 05:22:09 +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=1773897730; cv=none; b=AKtGZkbeaZjPqEM8xXKs6xVOL5G+/Gy300yR9Flolu+/kVGz1Ktbz1XkEA53fB41AohAgN0RpLsJkqLJZquEn1+mYsaKJ9qmzQ+W6ztS30VGyVLFT4Jdvq1aesPtXL5EFaIYKUf6JdEFRXHwuA7hOG245A8/w+Dkls6QMd35hu0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773897730; c=relaxed/simple; bh=gKzlHjNwVy7/eu8xZ7uHLGZKBMO4b6mmZ9XNI0j6RLc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rwsQ6qdwMeGJe59WLnBHCX0mF1Ba3UxdrroKiPlv901wZd10PQG64HOwOU2aRSdEzXnf7ZNyzOUcZ/8Nxti9YcnPqVSKxniAqvXTxKxeyTt6P3EaviYTGJXy9Xh66P8QTKYmU8/DMvZR/ZuoWi5gQCD0zVXw89rCPduq2NgySGI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eLE1gPG+; 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="eLE1gPG+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AA2B2C2BCB1; Thu, 19 Mar 2026 05:22:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773897729; bh=gKzlHjNwVy7/eu8xZ7uHLGZKBMO4b6mmZ9XNI0j6RLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eLE1gPG+Hya7//RWaiPAEKxtepx386lQ0Cm8RdvkucYG+iOXOFeZPuszuRWKmhmqY Hlxm5qQmMgd/Efqo63G8l2SuLp2Bxr4GnzCPV7S+DNGqdG8Q89JJ+QMbBAMNdzoeIK OzXL+h+ya25rpojtJ7Hg/DmBKzOkdSFMuw7s2gKefp9JqRLIUXm7mTtbh2QiioYEka 4gWS9afrhZHM7PFTk3oiT+rnkAAeDLRe6Ix7R7uS3YviH0REcZaLVT1Z/Ug7VkjHEa 01/5O4fI4zM/Io7soEAT3UH61w2LoEMW0vljBhU7MvbGN30cHB29E8t3vNMLgsG97M tr4+UyLCjhRDg== From: SeongJae Park To: Cc: SeongJae Park , Shuah Khan , damon@lists.linux.dev, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [RFC PATCH v2 10/10] selftets/damon/sysfs.py: pause DAMON before dumping status Date: Wed, 18 Mar 2026 22:21:53 -0700 Message-ID: <20260319052157.99433-11-sj@kernel.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260319052157.99433-1-sj@kernel.org> References: <20260319052157.99433-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 | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/testing/selftests/damon/sysfs.py b/tools/testing/selftes= ts/damon/sysfs.py index e6d34ba05893f..704729c7a318e 100755 --- a/tools/testing/selftests/damon/sysfs.py +++ b/tools/testing/selftests/damon/sysfs.py @@ -193,18 +193,48 @@ 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 [] + for kd in kdamonds.kdamonds: + for ctx in kd.contexts: + if ctx.pause is False: + ctx.pause =3D True + err =3D kd.commit() + if err is not None: + print('pause fail (%s)' % err) + kdamonds.stop() + exit(1) + ctxs_paused_for_dump.append(ctx) + status, err =3D dump_damon_status_dict(kdamonds.kdamonds[0].pid) if err is not None: print(err) kdamonds.stop() exit(1) =20 + for kd in kdamonds.kdamonds: + for ctx in kd.contexts: + if ctx in ctxs_paused_for_dump: + ctx.pause =3D False + err =3D kd.commit() + if err is not None: + print('resume fail (%s)' % err) + kdamonds.stop() + exit(1) + # restore for comparison + 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( @@ -302,6 +332,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