Lines Matching full:scheme

14  * scheme region directory
128 * scheme regions directory
1165 * scheme/weights directory
1541 * scheme directory
1576 struct damon_sysfs_scheme *scheme = kmalloc(sizeof(*scheme), in damon_sysfs_scheme_alloc() local
1579 if (!scheme) in damon_sysfs_scheme_alloc()
1581 scheme->kobj = (struct kobject){}; in damon_sysfs_scheme_alloc()
1582 scheme->action = action; in damon_sysfs_scheme_alloc()
1583 scheme->apply_interval_us = apply_interval_us; in damon_sysfs_scheme_alloc()
1584 scheme->target_nid = NUMA_NO_NODE; in damon_sysfs_scheme_alloc()
1585 return scheme; in damon_sysfs_scheme_alloc()
1589 struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_set_access_pattern() argument
1598 &damon_sysfs_access_pattern_ktype, &scheme->kobj, in damon_sysfs_scheme_set_access_pattern()
1605 scheme->access_pattern = access_pattern; in damon_sysfs_scheme_set_access_pattern()
1613 static int damon_sysfs_scheme_set_quotas(struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_set_quotas() argument
1621 &scheme->kobj, "quotas"); in damon_sysfs_scheme_set_quotas()
1627 scheme->quotas = quotas; in damon_sysfs_scheme_set_quotas()
1635 static int damon_sysfs_scheme_set_watermarks(struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_set_watermarks() argument
1644 &damon_sysfs_watermarks_ktype, &scheme->kobj, in damon_sysfs_scheme_set_watermarks()
1649 scheme->watermarks = watermarks; in damon_sysfs_scheme_set_watermarks()
1653 static int damon_sysfs_scheme_set_filters(struct damon_sysfs_scheme *scheme, in damon_sysfs_scheme_set_filters() argument
1664 &damon_sysfs_scheme_filters_ktype, &scheme->kobj, in damon_sysfs_scheme_set_filters()
1673 static int damos_sysfs_set_filter_dirs(struct damon_sysfs_scheme *scheme) in damos_sysfs_set_filter_dirs() argument
1677 err = damon_sysfs_scheme_set_filters(scheme, in damos_sysfs_set_filter_dirs()
1679 &scheme->filters); in damos_sysfs_set_filter_dirs()
1682 err = damon_sysfs_scheme_set_filters(scheme, in damos_sysfs_set_filter_dirs()
1684 &scheme->core_filters); in damos_sysfs_set_filter_dirs()
1687 err = damon_sysfs_scheme_set_filters(scheme, in damos_sysfs_set_filter_dirs()
1689 &scheme->ops_filters); in damos_sysfs_set_filter_dirs()
1695 kobject_put(&scheme->core_filters->kobj); in damos_sysfs_set_filter_dirs()
1696 scheme->core_filters = NULL; in damos_sysfs_set_filter_dirs()
1698 kobject_put(&scheme->filters->kobj); in damos_sysfs_set_filter_dirs()
1699 scheme->filters = NULL; in damos_sysfs_set_filter_dirs()
1703 static int damon_sysfs_scheme_set_stats(struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_set_stats() argument
1711 &scheme->kobj, "stats"); in damon_sysfs_scheme_set_stats()
1715 scheme->stats = stats; in damon_sysfs_scheme_set_stats()
1720 struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_set_tried_regions() argument
1729 &damon_sysfs_scheme_regions_ktype, &scheme->kobj, in damon_sysfs_scheme_set_tried_regions()
1734 scheme->tried_regions = tried_regions; in damon_sysfs_scheme_set_tried_regions()
1738 static int damon_sysfs_scheme_add_dirs(struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_add_dirs() argument
1742 err = damon_sysfs_scheme_set_access_pattern(scheme); in damon_sysfs_scheme_add_dirs()
1745 err = damon_sysfs_scheme_set_quotas(scheme); in damon_sysfs_scheme_add_dirs()
1748 err = damon_sysfs_scheme_set_watermarks(scheme); in damon_sysfs_scheme_add_dirs()
1751 err = damos_sysfs_set_filter_dirs(scheme); in damon_sysfs_scheme_add_dirs()
1754 err = damon_sysfs_scheme_set_stats(scheme); in damon_sysfs_scheme_add_dirs()
1757 err = damon_sysfs_scheme_set_tried_regions(scheme); in damon_sysfs_scheme_add_dirs()
1763 kobject_put(&scheme->tried_regions->kobj); in damon_sysfs_scheme_add_dirs()
1764 scheme->tried_regions = NULL; in damon_sysfs_scheme_add_dirs()
1766 kobject_put(&scheme->ops_filters->kobj); in damon_sysfs_scheme_add_dirs()
1767 scheme->ops_filters = NULL; in damon_sysfs_scheme_add_dirs()
1768 kobject_put(&scheme->core_filters->kobj); in damon_sysfs_scheme_add_dirs()
1769 scheme->core_filters = NULL; in damon_sysfs_scheme_add_dirs()
1770 kobject_put(&scheme->filters->kobj); in damon_sysfs_scheme_add_dirs()
1771 scheme->filters = NULL; in damon_sysfs_scheme_add_dirs()
1773 kobject_put(&scheme->watermarks->kobj); in damon_sysfs_scheme_add_dirs()
1774 scheme->watermarks = NULL; in damon_sysfs_scheme_add_dirs()
1776 kobject_put(&scheme->quotas->kobj); in damon_sysfs_scheme_add_dirs()
1777 scheme->quotas = NULL; in damon_sysfs_scheme_add_dirs()
1779 kobject_put(&scheme->access_pattern->kobj); in damon_sysfs_scheme_add_dirs()
1780 scheme->access_pattern = NULL; in damon_sysfs_scheme_add_dirs()
1784 static void damon_sysfs_scheme_rm_dirs(struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_rm_dirs() argument
1786 damon_sysfs_access_pattern_rm_dirs(scheme->access_pattern); in damon_sysfs_scheme_rm_dirs()
1787 kobject_put(&scheme->access_pattern->kobj); in damon_sysfs_scheme_rm_dirs()
1788 damon_sysfs_quotas_rm_dirs(scheme->quotas); in damon_sysfs_scheme_rm_dirs()
1789 kobject_put(&scheme->quotas->kobj); in damon_sysfs_scheme_rm_dirs()
1790 kobject_put(&scheme->watermarks->kobj); in damon_sysfs_scheme_rm_dirs()
1791 damon_sysfs_scheme_filters_rm_dirs(scheme->filters); in damon_sysfs_scheme_rm_dirs()
1792 kobject_put(&scheme->filters->kobj); in damon_sysfs_scheme_rm_dirs()
1793 damon_sysfs_scheme_filters_rm_dirs(scheme->core_filters); in damon_sysfs_scheme_rm_dirs()
1794 kobject_put(&scheme->core_filters->kobj); in damon_sysfs_scheme_rm_dirs()
1795 damon_sysfs_scheme_filters_rm_dirs(scheme->ops_filters); in damon_sysfs_scheme_rm_dirs()
1796 kobject_put(&scheme->ops_filters->kobj); in damon_sysfs_scheme_rm_dirs()
1797 kobject_put(&scheme->stats->kobj); in damon_sysfs_scheme_rm_dirs()
1798 damon_sysfs_scheme_regions_rm_dirs(scheme->tried_regions); in damon_sysfs_scheme_rm_dirs()
1799 kobject_put(&scheme->tried_regions->kobj); in damon_sysfs_scheme_rm_dirs()
1805 struct damon_sysfs_scheme *scheme = container_of(kobj, in action_show() local
1809 damon_sysfs_damos_action_strs[scheme->action]); in action_show()
1815 struct damon_sysfs_scheme *scheme = container_of(kobj, in action_store() local
1821 scheme->action = action; in action_store()
1831 struct damon_sysfs_scheme *scheme = container_of(kobj, in apply_interval_us_show() local
1834 return sysfs_emit(buf, "%lu\n", scheme->apply_interval_us); in apply_interval_us_show()
1840 struct damon_sysfs_scheme *scheme = container_of(kobj, in apply_interval_us_store() local
1842 int err = kstrtoul(buf, 0, &scheme->apply_interval_us); in apply_interval_us_store()
1850 struct damon_sysfs_scheme *scheme = container_of(kobj, in target_nid_show() local
1853 return sysfs_emit(buf, "%d\n", scheme->target_nid); in target_nid_show()
1859 struct damon_sysfs_scheme *scheme = container_of(kobj, in target_nid_store() local
1864 err = kstrtoint(buf, 0, &scheme->target_nid); in target_nid_store()
1923 struct damon_sysfs_scheme **schemes_arr, *scheme; in damon_sysfs_schemes_add_dirs() local
1941 scheme = damon_sysfs_scheme_alloc(DAMOS_STAT, 0); in damon_sysfs_schemes_add_dirs()
1942 if (!scheme) { in damon_sysfs_schemes_add_dirs()
1947 err = kobject_init_and_add(&scheme->kobj, in damon_sysfs_schemes_add_dirs()
1952 err = damon_sysfs_scheme_add_dirs(scheme); in damon_sysfs_schemes_add_dirs()
1956 schemes_arr[i] = scheme; in damon_sysfs_schemes_add_dirs()
1963 kobject_put(&scheme->kobj); in damon_sysfs_schemes_add_dirs()
2058 static int damon_sysfs_add_scheme_filters(struct damos *scheme, in damon_sysfs_add_scheme_filters() argument
2100 damos_add_filter(scheme, filter); in damon_sysfs_add_scheme_filters()
2133 struct damos *scheme; in damos_sysfs_set_quota_scores() local
2138 damon_for_each_scheme(scheme, ctx) { in damos_sysfs_set_quota_scores()
2143 /* user could have removed the scheme sysfs dir */ in damos_sysfs_set_quota_scores()
2155 err = damos_commit_quota_goals(&scheme->quota, &quota); in damos_sysfs_set_quota_scores()
2169 struct damos *scheme; in damos_sysfs_update_effective_quotas() local
2172 damon_for_each_scheme(scheme, ctx) { in damos_sysfs_update_effective_quotas()
2175 /* user could have removed the scheme sysfs dir */ in damos_sysfs_update_effective_quotas()
2181 sysfs_quotas->effective_sz = scheme->quota.esz; in damos_sysfs_update_effective_quotas()
2193 struct damos *scheme; in damon_sysfs_mk_scheme() local
2220 scheme = damon_new_scheme(&pattern, sysfs_scheme->action, in damon_sysfs_mk_scheme()
2223 if (!scheme) in damon_sysfs_mk_scheme()
2226 err = damos_sysfs_add_quota_score(sysfs_quotas->goals, &scheme->quota); in damon_sysfs_mk_scheme()
2228 damon_destroy_scheme(scheme); in damon_sysfs_mk_scheme()
2232 err = damon_sysfs_add_scheme_filters(scheme, sysfs_scheme->core_filters); in damon_sysfs_mk_scheme()
2234 damon_destroy_scheme(scheme); in damon_sysfs_mk_scheme()
2237 err = damon_sysfs_add_scheme_filters(scheme, sysfs_scheme->ops_filters); in damon_sysfs_mk_scheme()
2239 damon_destroy_scheme(scheme); in damon_sysfs_mk_scheme()
2242 err = damon_sysfs_add_scheme_filters(scheme, sysfs_scheme->filters); in damon_sysfs_mk_scheme()
2244 damon_destroy_scheme(scheme); in damon_sysfs_mk_scheme()
2247 return scheme; in damon_sysfs_mk_scheme()
2256 struct damos *scheme, *next; in damon_sysfs_add_schemes() local
2258 scheme = damon_sysfs_mk_scheme(sysfs_schemes->schemes_arr[i]); in damon_sysfs_add_schemes()
2259 if (!scheme) { in damon_sysfs_add_schemes()
2260 damon_for_each_scheme_safe(scheme, next, ctx) in damon_sysfs_add_schemes()
2261 damon_destroy_scheme(scheme); in damon_sysfs_add_schemes()
2264 damon_add_scheme(ctx, scheme); in damon_sysfs_add_schemes()
2273 struct damos *scheme; in damon_sysfs_schemes_update_stats() local
2276 damon_for_each_scheme(scheme, ctx) { in damon_sysfs_schemes_update_stats()
2279 /* user could have removed the scheme sysfs dir */ in damon_sysfs_schemes_update_stats()
2284 sysfs_stats->nr_tried = scheme->stat.nr_tried; in damon_sysfs_schemes_update_stats()
2285 sysfs_stats->sz_tried = scheme->stat.sz_tried; in damon_sysfs_schemes_update_stats()
2286 sysfs_stats->nr_applied = scheme->stat.nr_applied; in damon_sysfs_schemes_update_stats()
2287 sysfs_stats->sz_applied = scheme->stat.sz_applied; in damon_sysfs_schemes_update_stats()
2289 scheme->stat.sz_ops_filter_passed; in damon_sysfs_schemes_update_stats()
2290 sysfs_stats->qt_exceeds = scheme->stat.qt_exceeds; in damon_sysfs_schemes_update_stats()
2300 * @s: Corresponding scheme.
2311 struct damos *scheme; in damos_sysfs_populate_region_dir() local
2316 damon_for_each_scheme(scheme, ctx) { in damos_sysfs_populate_region_dir()
2317 if (scheme == s) in damos_sysfs_populate_region_dir()
2322 /* user could have removed the scheme sysfs dir */ in damos_sysfs_populate_region_dir()