From: sashiko-bot@kernel.org
To: "SJ Park" <sj@kernel.org>
Cc: damon@lists.linux.dev
Subject: Re: [PATCH 6/7] selftests/damon: prevent remaining cross-object state pollution
Date: Mon, 31 Aug 2026 18:17:34 +0000 [thread overview]
Message-ID: <20260831181734.7033D1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260831142611.77572-7-sj@kernel.org>
> From: zhaozhengzhuo <zhaozhengzhuo@uniontech.com>
>
> _damon_sysfs.py defines constructors with mutable default arguments,
> including DamosAccessPattern(), DamosQuota(), DamosWatermarks(),
> DamosDests(), IntervalsGoal(), and empty lists.
>
> Default arguments are evaluated once at function definition time.
> Damos() instances created without explicit arguments therefore share
> the same DamosQuota(), and the other default-constructed sub-objects
> and lists are shared in the same way. The sub-objects keep
> back-pointers to their owner scheme, so constructing the second Damos()
> rebinds the shared quota's scheme pointer to the second object. An
> item appended to one object's default contexts or filters list is also
> visible from other default-constructed objects.
>
> The shared state can corrupt test configurations. DamosQuota.sysfs_dir()
> derives the sysfs directory from its scheme pointer, so operating on
> the first scheme's default quota may write to the second scheme's
> directory. The wrong values often match the defaults, so tests still
> pass, but the behavior depends on object creation order.
>
> Commit 8319dadcbd81 ("selftests/damon: prevent cross-context state
> pollution in DamonCtx") fixed the same pattern in DamonCtx only. Fix
> the remaining constructors by defaulting to None and creating fresh
> objects or lists inside each constructor. Explicit arguments keep
> their previous behavior.
>
> Signed-off-by: zhaozhengzhuo <zhaozhengzhuo@uniontech.com>
> Reviewed-by: SJ Park <sj@kernel.org>
> Signed-off-by: SJ Park <sj@kernel.org>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260831142611.77572-1-sj@kernel.org?part=6
next prev parent reply other threads:[~2026-08-31 18:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 14:26 [PATCH 0/7] mm/damon: misc cleanups SJ Park
2026-08-31 14:26 ` [PATCH 1/7] mm/damon/core: remove declaration of __damon_commit_ctx() SJ Park
2026-08-31 17:44 ` sashiko-bot
2026-08-31 14:26 ` [PATCH 2/7] mm/damon/core: introduce damon_set_target_pid() SJ Park
2026-08-31 17:58 ` sashiko-bot
2026-08-31 23:31 ` Andrew Morton
2026-09-01 0:40 ` SJ Park
2026-08-31 14:26 ` [PATCH 3/7] mm/damon/ops-common: factor out damon_putback_folio_list() SJ Park
2026-08-31 18:00 ` sashiko-bot
2026-08-31 14:26 ` [PATCH 4/7] selftests/damon/sysfs.py: clean up sh processes used for obsolete_target test SJ Park
2026-08-31 18:06 ` sashiko-bot
2026-08-31 14:26 ` [PATCH 5/7] mm/damon/tests: use scoped_guard() for damon_test_ops_registration SJ Park
2026-08-31 18:12 ` sashiko-bot
2026-08-31 14:26 ` [PATCH 6/7] selftests/damon: prevent remaining cross-object state pollution SJ Park
2026-08-31 18:17 ` sashiko-bot [this message]
2026-08-31 14:26 ` [PATCH 7/7] samples/damon/mtier: add comment for struct region_range SJ Park
2026-08-31 18:18 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260831181734.7033D1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=damon@lists.linux.dev \
--cc=sashiko-reviews@lists.linux.dev \
--cc=sj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox