Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm/damon/core: avoid destroyed target reference from DAMOS quota

When the number of the monitoring targets in running contexts is reduced,
there may be DAMOS quotas referencing the targets that will be destroyed.

Applying the scheme action for such DAMOS scheme will be skipped forever
looking for the starting part of the region for the destroyed monitoring
target.

To fix this issue, when the monitoring target is destroyed, reset the
starting part for all DAMOS quotas that reference the target.

Link: https://lkml.kernel.org/r/20250517141852.142802-1-akinobu.mita@gmail.com
Fixes: da87878010e5 ("mm/damon/sysfs: support online inputs update")
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Akinobu Mita and committed by
Andrew Morton
8e1c4961 3ac4638a

+8
+8
mm/damon/core.c
··· 1093 1093 if (err) 1094 1094 return err; 1095 1095 } else { 1096 + struct damos *s; 1097 + 1096 1098 if (damon_target_has_pid(dst)) 1097 1099 put_pid(dst_target->pid); 1098 1100 damon_destroy_target(dst_target); 1101 + damon_for_each_scheme(s, dst) { 1102 + if (s->quota.charge_target_from == dst_target) { 1103 + s->quota.charge_target_from = NULL; 1104 + s->quota.charge_addr_from = 0; 1105 + } 1106 + } 1099 1107 } 1100 1108 } 1101 1109