mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 06:04:23 +08:00
4401e9d10a
damon_feed_loop_next_input() is inefficient and fragile to overflows.
Specifically, 'score_goal_diff_bp' calculation can overflow when 'score'
is high. The calculation is actually unnecessary at all because 'goal' is
a constant of value 10,000. Calculation of 'compensation' is again
fragile to overflow. Final calculation of return value for under-achiving
case is again fragile to overflow when the current score is
under-achieving the target.
Add two corner cases handling at the beginning of the function to make the
body easier to read, and rewrite the body of the function to avoid
overflows and the unnecessary bp value calcuation.
Link: https://lkml.kernel.org/r/20241031161203.47751-1-sj@kernel.org
Fixes:
|
||
---|---|---|
.. | ||
tests | ||
core.c | ||
dbgfs.c | ||
Kconfig | ||
lru_sort.c | ||
Makefile | ||
modules-common.c | ||
modules-common.h | ||
ops-common.c | ||
ops-common.h | ||
paddr.c | ||
reclaim.c | ||
sysfs-common.c | ||
sysfs-common.h | ||
sysfs-schemes.c | ||
sysfs.c | ||
vaddr.c |