Hello zhaozhengzhuo, On Thu, 27 Aug 2026 10:14:52 +0800 [email protected] wrote:
> From: zhaozhengzhuo <[email protected]> > > _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. I agree all the points. This should be fixed. That said, these are only possible future issues. No existing test is broken, right? > > 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. Thank you for fixing this, looks good to me! > > Signed-off-by: zhaozhengzhuo <[email protected]> Reviewed-by: SJ Park <[email protected]> This patch is applied to damon/next [1] tree. If this patch is not added to mm.git in short term (~1 week?), I will ask mm.git maintainer (Andrew Morton) to pick this. So, no action from your side is needed for now. If it seems I also forgot doing that or you cannot wait for my action, please feel free to directly ask that to Andrew. [1] https://origin.kernel.org/doc/html/latest/mm/damon/maintainer-profile.html#scm-trees Thanks, SJ [...]

