linux/mm/damon
Jonghyeon Kim 78049e94a1 mm/damon: prevent activated scheme from sleeping by deactivated schemes
In the DAMON, the minimum wait time of the schemes decides whether the
kernel wakes up 'kdamon_fn()'.  But since the minimum wait time is
initialized to zero, there are corner cases against the original
objective.

For example, if we have several schemes for one target, and if the wait
time of the first scheme is zero, the minimum wait time will set zero,
which means 'kdamond_fn()' should wake up to apply this scheme.
However, in the following scheme, wait time can be set to non-zero.
Thus, the mininum wait time will be set to non-zero, which can cause
sleeping this interval for 'kdamon_fn()' due to one deactivated last
scheme.

This commit prevents making DAMON monitoring inactive state due to other
deactivated schemes.

Link: https://lkml.kernel.org/r/20220330105302.32114-1-tome01@ajou.ac.kr
Signed-off-by: Jonghyeon Kim <tome01@ajou.ac.kr>
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-04-01 11:46:09 -07:00
..
core-test.h mm/damon: remove the target id concept 2022-03-22 15:57:12 -07:00
core.c mm/damon: prevent activated scheme from sleeping by deactivated schemes 2022-04-01 11:46:09 -07:00
dbgfs-test.h mm/damon/dbgfs-test: fix is_target_id() change 2022-03-22 15:57:12 -07:00
dbgfs.c mm/damon/core: allow non-exclusive DAMON start/stop 2022-03-22 15:57:13 -07:00
Kconfig mm/damon: implement a minimal stub for sysfs-based DAMON interface 2022-03-22 15:57:13 -07:00
Makefile mm/damon: implement a minimal stub for sysfs-based DAMON interface 2022-03-22 15:57:13 -07:00
ops-common.c mm/damon: rename damon_primitives to damon_operations 2022-03-22 15:57:12 -07:00
ops-common.h mm/damon: rename damon_primitives to damon_operations 2022-03-22 15:57:12 -07:00
paddr.c Folio changes for 5.18 2022-03-22 17:03:12 -07:00
reclaim.c mm/damon/core: allow non-exclusive DAMON start/stop 2022-03-22 15:57:13 -07:00
sysfs.c mm/damon/sysfs: remove repeat container_of() in damon_sysfs_kdamond_release() 2022-03-22 15:57:13 -07:00
vaddr-test.h mm/damon: rename damon_primitives to damon_operations 2022-03-22 15:57:12 -07:00
vaddr.c mm/damon/paddr,vaddr: remove damon_{p,v}a_{target_valid,set_operations}() 2022-03-22 15:57:12 -07:00