| From: SeongJae Park <sj@kernel.org> |
| Subject: mm/damon/sysfs-schemes: remove unnecessary online tuning handling code |
| Date: Tue, 18 Jun 2024 11:18:04 -0700 |
| |
| damon/sysfs-schemes.c contains code for handling of online DAMON |
| parameters update edge cases. The logics are no more necessary since |
| damon_commit_ctx() and damon_commit_quota_goals() takes care of the cases. |
| Remove the unnecessary code. |
| |
| Link: https://lkml.kernel.org/r/20240618181809.82078-8-sj@kernel.org |
| Signed-off-by: SeongJae Park <sj@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/damon/sysfs-schemes.c | 68 +------------------------------------ |
| 1 file changed, 3 insertions(+), 65 deletions(-) |
| |
| --- a/mm/damon/sysfs-schemes.c~mm-damon-sysfs-schemes-remove-unnecessary-online-tuning-handling-code |
| +++ a/mm/damon/sysfs-schemes.c |
| @@ -1912,10 +1912,6 @@ static int damon_sysfs_set_scheme_filter |
| struct damon_sysfs_scheme_filters *sysfs_filters) |
| { |
| int i; |
| - struct damos_filter *filter, *next; |
| - |
| - damos_for_each_filter_safe(filter, next, scheme) |
| - damos_destroy_filter(filter); |
| |
| for (i = 0; i < sysfs_filters->nr; i++) { |
| struct damon_sysfs_scheme_filter *sysfs_filter = |
| @@ -1955,12 +1951,9 @@ static int damos_sysfs_set_quota_score( |
| struct damos_sysfs_quota_goals *sysfs_goals, |
| struct damos_quota *quota) |
| { |
| - struct damos_quota_goal *goal, *next; |
| + struct damos_quota_goal *goal; |
| int i; |
| |
| - damos_for_each_quota_goal_safe(goal, next, quota) |
| - damos_destroy_quota_goal(goal); |
| - |
| for (i = 0; i < sysfs_goals->nr; i++) { |
| struct damos_sysfs_quota_goal *sysfs_goal = |
| sysfs_goals->goals_arr[i]; |
| @@ -2091,67 +2084,12 @@ static struct damos *damon_sysfs_mk_sche |
| return scheme; |
| } |
| |
| -static void damon_sysfs_update_scheme(struct damos *scheme, |
| - struct damon_sysfs_scheme *sysfs_scheme) |
| -{ |
| - struct damon_sysfs_access_pattern *access_pattern = |
| - sysfs_scheme->access_pattern; |
| - struct damon_sysfs_quotas *sysfs_quotas = sysfs_scheme->quotas; |
| - struct damon_sysfs_weights *sysfs_weights = sysfs_quotas->weights; |
| - struct damon_sysfs_watermarks *sysfs_wmarks = sysfs_scheme->watermarks; |
| - int err; |
| - |
| - scheme->pattern.min_sz_region = access_pattern->sz->min; |
| - scheme->pattern.max_sz_region = access_pattern->sz->max; |
| - scheme->pattern.min_nr_accesses = access_pattern->nr_accesses->min; |
| - scheme->pattern.max_nr_accesses = access_pattern->nr_accesses->max; |
| - scheme->pattern.min_age_region = access_pattern->age->min; |
| - scheme->pattern.max_age_region = access_pattern->age->max; |
| - |
| - scheme->action = sysfs_scheme->action; |
| - scheme->apply_interval_us = sysfs_scheme->apply_interval_us; |
| - scheme->target_nid = sysfs_scheme->target_nid; |
| - |
| - scheme->quota.ms = sysfs_quotas->ms; |
| - scheme->quota.sz = sysfs_quotas->sz; |
| - scheme->quota.reset_interval = sysfs_quotas->reset_interval_ms; |
| - scheme->quota.weight_sz = sysfs_weights->sz; |
| - scheme->quota.weight_nr_accesses = sysfs_weights->nr_accesses; |
| - scheme->quota.weight_age = sysfs_weights->age; |
| - |
| - err = damos_sysfs_set_quota_score(sysfs_quotas->goals, &scheme->quota); |
| - if (err) { |
| - damon_destroy_scheme(scheme); |
| - return; |
| - } |
| - |
| - scheme->wmarks.metric = sysfs_wmarks->metric; |
| - scheme->wmarks.interval = sysfs_wmarks->interval_us; |
| - scheme->wmarks.high = sysfs_wmarks->high; |
| - scheme->wmarks.mid = sysfs_wmarks->mid; |
| - scheme->wmarks.low = sysfs_wmarks->low; |
| - |
| - err = damon_sysfs_set_scheme_filters(scheme, sysfs_scheme->filters); |
| - if (err) |
| - damon_destroy_scheme(scheme); |
| -} |
| - |
| int damon_sysfs_set_schemes(struct damon_ctx *ctx, |
| struct damon_sysfs_schemes *sysfs_schemes) |
| { |
| - struct damos *scheme, *next; |
| - int i = 0; |
| - |
| - damon_for_each_scheme_safe(scheme, next, ctx) { |
| - if (i < sysfs_schemes->nr) |
| - damon_sysfs_update_scheme(scheme, |
| - sysfs_schemes->schemes_arr[i]); |
| - else |
| - damon_destroy_scheme(scheme); |
| - i++; |
| - } |
| + int i; |
| |
| - for (; i < sysfs_schemes->nr; i++) { |
| + for (i = 0; i < sysfs_schemes->nr; i++) { |
| struct damos *scheme, *next; |
| |
| scheme = damon_sysfs_mk_scheme(sysfs_schemes->schemes_arr[i]); |
| _ |