Lines Matching refs:t

139 void damon_add_region(struct damon_region *r, struct damon_target *t)  in damon_add_region()  argument
141 list_add_tail(&r->list, &t->regions_list); in damon_add_region()
142 t->nr_regions++; in damon_add_region()
145 static void damon_del_region(struct damon_region *r, struct damon_target *t) in damon_del_region() argument
148 t->nr_regions--; in damon_del_region()
156 void damon_destroy_region(struct damon_region *r, struct damon_target *t) in damon_destroy_region() argument
158 damon_del_region(r, t); in damon_destroy_region()
177 struct damon_region *last, struct damon_target *t) in damon_fill_regions_holes() argument
181 damon_for_each_region_from(r, t) { in damon_fill_regions_holes()
191 damon_insert_region(newr, r, next, t); in damon_fill_regions_holes()
208 int damon_set_regions(struct damon_target *t, struct damon_addr_range *ranges, in damon_set_regions() argument
216 damon_for_each_region_safe(r, next, t) { in damon_set_regions()
222 damon_destroy_region(r, t); in damon_set_regions()
225 r = damon_first_region(t); in damon_set_regions()
233 damon_for_each_region_from(r, t) { in damon_set_regions()
250 damon_insert_region(newr, damon_prev_region(r), r, t); in damon_set_regions()
258 err = damon_fill_regions_holes(first, last, t); in damon_set_regions()
390 struct damon_target *t; in damon_new_target() local
392 t = kmalloc(sizeof(*t), GFP_KERNEL); in damon_new_target()
393 if (!t) in damon_new_target()
396 t->pid = NULL; in damon_new_target()
397 t->nr_regions = 0; in damon_new_target()
398 INIT_LIST_HEAD(&t->regions_list); in damon_new_target()
399 INIT_LIST_HEAD(&t->list); in damon_new_target()
401 return t; in damon_new_target()
404 void damon_add_target(struct damon_ctx *ctx, struct damon_target *t) in damon_add_target() argument
406 list_add_tail(&t->list, &ctx->adaptive_targets); in damon_add_target()
414 static void damon_del_target(struct damon_target *t) in damon_del_target() argument
416 list_del(&t->list); in damon_del_target()
419 void damon_free_target(struct damon_target *t) in damon_free_target() argument
423 damon_for_each_region_safe(r, next, t) in damon_free_target()
425 kfree(t); in damon_free_target()
428 void damon_destroy_target(struct damon_target *t) in damon_destroy_target() argument
430 damon_del_target(t); in damon_destroy_target()
431 damon_free_target(t); in damon_destroy_target()
434 unsigned int damon_nr_regions(struct damon_target *t) in damon_nr_regions() argument
436 return t->nr_regions; in damon_nr_regions()
471 struct damon_target *t, *next_t; in damon_destroy_targets() local
478 damon_for_each_target_safe(t, next_t, ctx) in damon_destroy_targets()
479 damon_destroy_target(t); in damon_destroy_targets()
543 struct damon_target *t; in damon_update_monitoring_results() local
552 damon_for_each_target(t, ctx) in damon_update_monitoring_results()
553 damon_for_each_region(r, t) in damon_update_monitoring_results()
633 struct damon_target *t; in damon_region_sz_limit() local
637 damon_for_each_target(t, ctx) { in damon_region_sz_limit()
638 damon_for_each_region(r, t) in damon_region_sz_limit()
770 struct damon_target *t; in kdamond_reset_aggregated() local
773 damon_for_each_target(t, c) { in kdamond_reset_aggregated()
776 damon_for_each_region(r, t) { in kdamond_reset_aggregated()
777 trace_damon_aggregated(t, ti, r, damon_nr_regions(t)); in kdamond_reset_aggregated()
785 static void damon_split_region_at(struct damon_target *t,
801 static bool damos_valid_target(struct damon_ctx *c, struct damon_target *t, in damos_valid_target() argument
809 return c->ops.get_scheme_score(c, t, r, s) >= s->quota.min_score; in damos_valid_target()
834 static bool damos_skip_charged_region(struct damon_target *t, in damos_skip_charged_region() argument
843 if (t != quota->charge_target_from) in damos_skip_charged_region()
845 if (r == damon_last_region(t)) { in damos_skip_charged_region()
863 damon_split_region_at(t, r, sz_to_skip); in damos_skip_charged_region()
883 static bool __damos_filter_out(struct damon_ctx *ctx, struct damon_target *t, in __damos_filter_out() argument
894 if (ti == t) in __damos_filter_out()
916 damon_split_region_at(t, r, start - r->ar.start); in __damos_filter_out()
921 damon_split_region_at(t, r, end - r->ar.start); in __damos_filter_out()
931 static bool damos_filter_out(struct damon_ctx *ctx, struct damon_target *t, in damos_filter_out() argument
937 if (__damos_filter_out(ctx, t, r, filter)) in damos_filter_out()
943 static void damos_apply_scheme(struct damon_ctx *c, struct damon_target *t, in damos_apply_scheme() argument
958 damon_split_region_at(t, r, sz); in damos_apply_scheme()
960 if (damos_filter_out(c, t, r, s)) in damos_apply_scheme()
964 err = c->callback.before_damos_apply(c, t, r, s); in damos_apply_scheme()
966 sz_applied = c->ops.apply_scheme(c, t, r, s); in damos_apply_scheme()
972 quota->charge_target_from = t; in damos_apply_scheme()
984 struct damon_target *t, in damon_do_apply_schemes() argument
1002 if (damos_skip_charged_region(t, &r, s)) in damon_do_apply_schemes()
1005 if (!damos_valid_target(c, t, r, s)) in damon_do_apply_schemes()
1008 damos_apply_scheme(c, t, r, s); in damon_do_apply_schemes()
1038 struct damon_target *t; in damos_adjust_quota() local
1062 damon_for_each_target(t, c) { in damos_adjust_quota()
1063 damon_for_each_region(r, t) { in damos_adjust_quota()
1066 score = c->ops.get_scheme_score(c, t, r, s); in damos_adjust_quota()
1084 struct damon_target *t; in kdamond_apply_schemes() local
1106 damon_for_each_target(t, c) { in kdamond_apply_schemes()
1107 damon_for_each_region_safe(r, next_r, t) in kdamond_apply_schemes()
1108 damon_do_apply_schemes(c, t, r); in kdamond_apply_schemes()
1123 static void damon_merge_two_regions(struct damon_target *t, in damon_merge_two_regions() argument
1132 damon_destroy_region(r, t); in damon_merge_two_regions()
1142 static void damon_merge_regions_of(struct damon_target *t, unsigned int thres, in damon_merge_regions_of() argument
1147 damon_for_each_region_safe(r, next, t) { in damon_merge_regions_of()
1156 damon_merge_two_regions(t, prev, r); in damon_merge_regions_of()
1182 struct damon_target *t; in kdamond_merge_regions() local
1190 damon_for_each_target(t, c) { in kdamond_merge_regions()
1191 damon_merge_regions_of(t, threshold, sz_limit); in kdamond_merge_regions()
1192 nr_regions += damon_nr_regions(t); in kdamond_merge_regions()
1205 static void damon_split_region_at(struct damon_target *t, in damon_split_region_at() argument
1220 damon_insert_region(new, r, damon_next_region(r), t); in damon_split_region_at()
1224 static void damon_split_regions_of(struct damon_target *t, int nr_subs) in damon_split_regions_of() argument
1230 damon_for_each_region_safe(r, next, t) { in damon_split_regions_of()
1245 damon_split_region_at(t, r, sz_sub); in damon_split_regions_of()
1263 struct damon_target *t; in kdamond_split_regions() local
1268 damon_for_each_target(t, ctx) in kdamond_split_regions()
1269 nr_regions += damon_nr_regions(t); in kdamond_split_regions()
1279 damon_for_each_target(t, ctx) in kdamond_split_regions()
1280 damon_split_regions_of(t, nr_subregions); in kdamond_split_regions()
1295 struct damon_target *t; in kdamond_need_stop() local
1303 damon_for_each_target(t, ctx) { in kdamond_need_stop()
1304 if (ctx->ops.target_valid(t)) in kdamond_need_stop()
1421 struct damon_target *t; in kdamond_fn() local
1503 damon_for_each_target(t, ctx) { in kdamond_fn()
1504 damon_for_each_region_safe(r, next, t) in kdamond_fn()
1505 damon_destroy_region(r, t); in kdamond_fn()
1583 int damon_set_region_biggest_system_ram_default(struct damon_target *t, in damon_set_region_biggest_system_ram_default() argument
1597 return damon_set_regions(t, &addr_range, 1); in damon_set_region_biggest_system_ram_default()