mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-17 09:43:59 +08:00
mm/damon/core: finish kdamond as soon as any callback returns an error
When 'after_sampling()' or 'after_aggregation()' DAMON callbacks return an error, kdamond continues the remaining loop once. It makes no much sense to run the remaining part while something wrong already happened. The context might be corrupted or having invalid data. This commit therefore makes kdamond skips the remaining works and immediately finish in the cases. Link: https://lkml.kernel.org/r/20220429160606.127307-3-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
6e74d2bf5a
commit
abacd635fa
@ -1089,8 +1089,10 @@ static int kdamond_fn(void *data)
|
||||
if (ctx->ops.prepare_access_checks)
|
||||
ctx->ops.prepare_access_checks(ctx);
|
||||
if (ctx->callback.after_sampling &&
|
||||
ctx->callback.after_sampling(ctx))
|
||||
ctx->callback.after_sampling(ctx)) {
|
||||
done = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
kdamond_usleep(ctx->sample_interval);
|
||||
|
||||
@ -1102,8 +1104,10 @@ static int kdamond_fn(void *data)
|
||||
max_nr_accesses / 10,
|
||||
sz_limit);
|
||||
if (ctx->callback.after_aggregation &&
|
||||
ctx->callback.after_aggregation(ctx))
|
||||
ctx->callback.after_aggregation(ctx)) {
|
||||
done = true;
|
||||
continue;
|
||||
}
|
||||
kdamond_apply_schemes(ctx);
|
||||
kdamond_reset_aggregated(ctx);
|
||||
kdamond_split_regions(ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user