mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
mm/damon/core: remove damon_moving_sum() and its unit test
damon_moving_sum() is no longer being called for real purpose but its unit test. Testing a function that is not being used for real users makes no sense. Remove the test and the function. Link: https://lore.kernel.org/20260630040812.149729-18-sj@kernel.org Signed-off-by: SJ Park <sj@kernel.org> Cc: Brendan Higgins <brendan.higgins@linux.dev> Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Shuah Khan <shuah@kernel.org> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
5744423b46
commit
9255add1fc
|
|
@ -3789,46 +3789,6 @@ int damon_set_region_system_rams_default(struct damon_target *t,
|
|||
return damon_set_regions(t, &addr_range, 1, min_region_sz);
|
||||
}
|
||||
|
||||
/*
|
||||
* damon_moving_sum() - Calculate an inferred moving sum value.
|
||||
* @mvsum: Inferred sum of the last @len_window values.
|
||||
* @nomvsum: Non-moving sum of the last discrete @len_window window values.
|
||||
* @len_window: The number of last values to take care of.
|
||||
* @new_value: New value that will be added to the pseudo moving sum.
|
||||
*
|
||||
* Moving sum (moving average * window size) is good for handling noise, but
|
||||
* the cost of keeping past values can be high for arbitrary window size. This
|
||||
* function implements a lightweight pseudo moving sum function that doesn't
|
||||
* keep the past window values.
|
||||
*
|
||||
* It simply assumes there was no noise in the past, and get the no-noise
|
||||
* assumed past value to drop from @nomvsum and @len_window. @nomvsum is a
|
||||
* non-moving sum of the last window. For example, if @len_window is 10 and we
|
||||
* have 25 values, @nomvsum is the sum of the 11th to 20th values of the 25
|
||||
* values. Hence, this function simply drops @nomvsum / @len_window from
|
||||
* given @mvsum and add @new_value.
|
||||
*
|
||||
* For example, if @len_window is 10 and @nomvsum is 50, the last 10 values for
|
||||
* the last window could be vary, e.g., 0, 10, 0, 10, 0, 10, 0, 0, 0, 20. For
|
||||
* calculating next moving sum with a new value, we should drop 0 from 50 and
|
||||
* add the new value. However, this function assumes it got value 5 for each
|
||||
* of the last ten times. Based on the assumption, when the next value is
|
||||
* measured, it drops the assumed past value, 5 from the current sum, and add
|
||||
* the new value to get the updated pseduo-moving average.
|
||||
*
|
||||
* This means the value could have errors, but the errors will be disappeared
|
||||
* for every @len_window aligned calls. For example, if @len_window is 10, the
|
||||
* pseudo moving sum with 11th value to 19th value would have an error. But
|
||||
* the sum with 20th value will not have the error.
|
||||
*
|
||||
* Return: Pseudo-moving average after getting the @new_value.
|
||||
*/
|
||||
static unsigned int damon_moving_sum(unsigned int mvsum, unsigned int nomvsum,
|
||||
unsigned int len_window, unsigned int new_value)
|
||||
{
|
||||
return mvsum - nomvsum / len_window + new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* damon_update_region_access_rate() - Update the access rate of a region.
|
||||
* @r: The DAMON region to update for its access check result.
|
||||
|
|
|
|||
|
|
@ -659,21 +659,6 @@ static void damon_test_set_attrs(struct kunit *test)
|
|||
damon_destroy_ctx(c);
|
||||
}
|
||||
|
||||
static void damon_test_moving_sum(struct kunit *test)
|
||||
{
|
||||
unsigned int mvsum = 50000, nomvsum = 50000, len_window = 10;
|
||||
unsigned int new_values[] = {10000, 0, 10000, 0, 0, 0, 10000, 0, 0, 0};
|
||||
unsigned int expects[] = {55000, 50000, 55000, 50000, 45000, 40000,
|
||||
45000, 40000, 35000, 30000};
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(new_values); i++) {
|
||||
mvsum = damon_moving_sum(mvsum, nomvsum, len_window,
|
||||
new_values[i]);
|
||||
KUNIT_EXPECT_EQ(test, mvsum, expects[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static void damon_test_mvsum(struct kunit *test)
|
||||
{
|
||||
unsigned long input_expects[] = {
|
||||
|
|
@ -1590,7 +1575,6 @@ static struct kunit_case damon_test_cases[] = {
|
|||
KUNIT_CASE(damon_test_nr_accesses_to_accesses_bp),
|
||||
KUNIT_CASE(damon_test_update_monitoring_result),
|
||||
KUNIT_CASE(damon_test_set_attrs),
|
||||
KUNIT_CASE(damon_test_moving_sum),
|
||||
KUNIT_CASE(damon_test_mvsum),
|
||||
KUNIT_CASE(damos_test_new_filter),
|
||||
KUNIT_CASE(damos_test_commit_quota_goal),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user