| /linux/mm/damon/ |
| H A D | sysfs-schemes.c | 1968 struct damon_sysfs_scheme *scheme = kmalloc(sizeof(*scheme), in damon_sysfs_scheme_alloc() local 1971 if (!scheme) in damon_sysfs_scheme_alloc() 1973 scheme->kobj = (struct kobject){}; in damon_sysfs_scheme_alloc() 1974 scheme->action = action; in damon_sysfs_scheme_alloc() 1975 scheme->apply_interval_us = apply_interval_us; in damon_sysfs_scheme_alloc() 1976 scheme->target_nid = NUMA_NO_NODE; in damon_sysfs_scheme_alloc() 1977 return scheme; in damon_sysfs_scheme_alloc() 1981 struct damon_sysfs_scheme *scheme) in damon_sysfs_scheme_set_access_pattern() argument 1990 &damon_sysfs_access_pattern_ktype, &scheme->kobj, in damon_sysfs_scheme_set_access_pattern() 1997 scheme->access_pattern = access_pattern; in damon_sysfs_scheme_set_access_pattern() [all …]
|
| H A D | paddr.c | 126 static bool damos_pa_filter_out(struct damos *scheme, struct folio *folio) in damos_pa_filter_out() argument 130 if (scheme->core_filters_allowed) in damos_pa_filter_out() 133 damos_for_each_ops_filter(filter, scheme) { in damos_pa_filter_out() 137 return scheme->ops_filters_default_reject; in damos_pa_filter_out() 322 struct damos *scheme, unsigned long *sz_filter_passed) in damon_pa_apply_scheme() argument 326 switch (scheme->action) { in damon_pa_apply_scheme() 328 return damon_pa_pageout(r, aunit, scheme, sz_filter_passed); in damon_pa_apply_scheme() 330 return damon_pa_mark_accessed(r, aunit, scheme, in damon_pa_apply_scheme() 333 return damon_pa_deactivate_pages(r, aunit, scheme, in damon_pa_apply_scheme() 337 return damon_pa_migrate(r, aunit, scheme, sz_filter_passed); in damon_pa_apply_scheme() [all …]
|
| H A D | reclaim.c | 195 struct damos *scheme; in damon_reclaim_apply_parameters() local 223 scheme = damon_reclaim_new_scheme(); in damon_reclaim_apply_parameters() 224 if (!scheme) in damon_reclaim_apply_parameters() 226 damon_set_schemes(param_ctx, &scheme, 1); in damon_reclaim_apply_parameters() 233 damos_add_quota_goal(&scheme->quota, goal); in damon_reclaim_apply_parameters() 241 damos_add_quota_goal(&scheme->quota, goal); in damon_reclaim_apply_parameters() 248 damos_add_filter(scheme, filter); in damon_reclaim_apply_parameters()
|
| H A D | vaddr.c | 611 static bool damos_va_filter_out(struct damos *scheme, struct folio *folio, in damos_va_filter_out() argument 618 if (scheme->core_filters_allowed) in damos_va_filter_out() 621 damos_for_each_ops_filter(filter, scheme) { in damos_va_filter_out() 637 return scheme->ops_filters_default_reject; in damos_va_filter_out() 642 struct damos *scheme; member 705 struct damos *s = priv->scheme; in damos_va_migrate_pmd_entry() 823 priv.scheme = s; in damos_va_migrate() 854 struct damos *scheme; member 868 struct damos *s = priv->scheme; in damos_va_stat_pmd_entry() 934 priv.scheme = s; in damos_va_stat() [all …]
|
| H A D | core.c | 380 struct damos *scheme; in damon_new_scheme() local 382 scheme = kmalloc(sizeof(*scheme), GFP_KERNEL); in damon_new_scheme() 383 if (!scheme) in damon_new_scheme() 385 scheme->pattern = *pattern; in damon_new_scheme() 386 scheme->action = action; in damon_new_scheme() 387 scheme->apply_interval_us = apply_interval_us; in damon_new_scheme() 393 scheme->next_apply_sis = 0; in damon_new_scheme() 394 scheme->walk_completed = false; in damon_new_scheme() 395 INIT_LIST_HEAD(&scheme->core_filters); in damon_new_scheme() 396 INIT_LIST_HEAD(&scheme->ops_filters); in damon_new_scheme() [all …]
|
| /linux/drivers/net/ethernet/freescale/fman/ |
| H A D | fman_keygen.c | 463 struct keygen_scheme *scheme; in keygen_bind_port_to_schemes() local 468 scheme = get_scheme(keygen, scheme_id); in keygen_bind_port_to_schemes() 469 if (!scheme) { in keygen_bind_port_to_schemes() 473 if (!scheme->used) { in keygen_bind_port_to_schemes() 480 ar_reg = build_ar_bind_scheme(scheme->hw_port_id, false); in keygen_bind_port_to_schemes() 489 ar_reg = build_ar_bind_scheme(scheme->hw_port_id, true); in keygen_bind_port_to_schemes() 514 struct keygen_scheme *scheme; in keygen_scheme_setup() local 518 scheme = get_scheme(keygen, scheme_id); in keygen_scheme_setup() 519 if (!scheme) { in keygen_scheme_setup() 523 if (enable && scheme->used) { in keygen_scheme_setup() [all …]
|
| /linux/tools/testing/selftests/damon/ |
| H A D | _damon_sysfs.py | 45 scheme = None variable in DamosAccessPattern 60 return os.path.join(self.scheme.sysfs_dir(), 'access_pattern') 137 scheme = None # owner scheme variable in DamosQuota 154 return os.path.join(self.scheme.sysfs_dir(), 'quotas') 202 scheme = None # owner scheme variable in DamosWatermarks 212 return os.path.join(self.scheme.sysfs_dir(), 'watermarks') 299 scheme = None # owner scheme variable in DamosFilters 309 return os.path.join(self.scheme.sysfs_dir(), self.name) 346 scheme = None # owner scheme variable in DamosDests 355 return os.path.join(self.scheme.sysfs_dir(), 'dests') [all …]
|
| H A D | damon_nr_regions.py | 49 scheme = kdamonds.kdamonds[0].contexts[0].schemes[0] 50 if scheme.tried_regions is None: 55 nr_tried_regions = len(scheme.tried_regions) 128 scheme = kdamonds.kdamonds[0].contexts[0].schemes[0] 129 if scheme.tried_regions is None: 134 nr_tried_regions = len(scheme.tried_regions)
|
| H A D | sysfs.py | 112 def assert_scheme_committed(scheme, dump): argument 113 assert_access_pattern_committed(scheme.access_pattern, dump['pattern']) 126 assert_true(dump['action'] == action_val[scheme.action], 'action', dump) 127 assert_true(dump['apply_interval_us'] == scheme. apply_interval_us, 129 assert_true(dump['target_nid'] == scheme.target_nid, 'target_nid', dump) 130 assert_migrate_dests_committed(scheme.dests, dump['migrate_dests']) 131 assert_quota_committed(scheme.quota, dump['quota']) 132 assert_watermarks_committed(scheme.watermarks, dump['wmarks']) 134 for idx, f in enumerate(scheme.core_filters.filters): 136 for idx, f in enumerate(scheme.ops_filters.filters): [all …]
|
| H A D | damos_tried_regions.py | 39 scheme = kdamonds.kdamonds[0].contexts[0].schemes[0] 40 if scheme.tried_regions is None: 45 nr_tried_regions = len(scheme.tried_regions)
|
| H A D | damos_quota.py | 49 scheme = kdamonds.kdamonds[0].contexts[0].schemes[0] 50 wss_collected.append(scheme.tried_bytes) 51 nr_quota_exceeds = scheme.stats.qt_exceeds
|
| H A D | drgn_dump_damon_status.py | 168 def scheme_to_dict(scheme): argument 169 dict_ = to_dict(scheme, [ 180 'struct damos_filter', scheme.core_filters.address_of_(), 'list'): 185 'struct damos_filter', scheme.ops_filters.address_of_(), 'list'):
|
| /linux/drivers/atm/ |
| H A D | fore200e.c | 285 int scheme, magn, nbr; in fore200e_free_rx_buf() local 288 for (scheme = 0; scheme < BUFFER_SCHEME_NBR; scheme++) { in fore200e_free_rx_buf() 291 if ((buffer = fore200e->host_bsq[ scheme ][ magn ].buffer) != NULL) { in fore200e_free_rx_buf() 293 for (nbr = 0; nbr < fore200e_rx_buf_nbr[ scheme ][ magn ]; nbr++) { in fore200e_free_rx_buf() 309 int scheme, magn; in fore200e_uninit_bs_queue() local 311 for (scheme = 0; scheme < BUFFER_SCHEME_NBR; scheme++) { in fore200e_uninit_bs_queue() 314 struct chunk* status = &fore200e->host_bsq[ scheme ][ magn ].status; in fore200e_uninit_bs_queue() 315 struct chunk* rbd_block = &fore200e->host_bsq[ scheme ][ magn ].rbd_block; in fore200e_uninit_bs_queue() 857 int bsq_audit(int where, struct host_bsq* bsq, int scheme, int magn) in bsq_audit() argument 867 where, scheme, magn, buffer->index); in bsq_audit() [all …]
|
| /linux/include/linux/ |
| H A D | damon.h | 643 struct damos *scheme); 646 struct damos *scheme, unsigned long *sz_filter_passed); 874 #define damos_for_each_core_filter(f, scheme) \ argument 875 list_for_each_entry(f, &(scheme)->core_filters, list) 877 #define damos_for_each_core_filter_safe(f, next, scheme) \ argument 878 list_for_each_entry_safe(f, next, &(scheme)->core_filters, list) 880 #define damos_for_each_ops_filter(f, scheme) \ argument 881 list_for_each_entry(f, &(scheme)->ops_filters, list) 883 #define damos_for_each_ops_filter_safe(f, next, scheme) \ argument 884 list_for_each_entry_safe(f, next, &(scheme)->ops_filters, list)
|
| /linux/samples/damon/ |
| H A D | mtier.c | 79 struct damos *scheme; in damon_sample_mtier_build_ctx() local 128 scheme = damon_new_scheme( in damon_sample_mtier_build_ctx() 151 if (!scheme) in damon_sample_mtier_build_ctx() 153 damon_set_schemes(ctx, &scheme, 1); in damon_sample_mtier_build_ctx() 161 damos_add_quota_goal(&scheme->quota, quota_goal); in damon_sample_mtier_build_ctx() 165 damos_add_filter(scheme, filter); in damon_sample_mtier_build_ctx()
|
| H A D | prcl.c | 63 struct damos *scheme; in damon_sample_prcl_start() local 89 scheme = damon_new_scheme( in damon_sample_prcl_start() 102 if (!scheme) { in damon_sample_prcl_start() 106 damon_set_schemes(ctx, &scheme, 1); in damon_sample_prcl_start()
|
| /linux/mm/damon/tests/ |
| H A D | core-kunit.h | 876 static void damos_test_help_initailize_scheme(struct damos *scheme) in damos_test_help_initailize_scheme() argument 878 INIT_LIST_HEAD(&scheme->quota.goals); in damos_test_help_initailize_scheme() 879 INIT_LIST_HEAD(&scheme->core_filters); in damos_test_help_initailize_scheme() 880 INIT_LIST_HEAD(&scheme->ops_filters); in damos_test_help_initailize_scheme() 1141 struct damos scheme; in damon_test_set_filters_default_reject() local 1144 INIT_LIST_HEAD(&scheme.core_filters); in damon_test_set_filters_default_reject() 1145 INIT_LIST_HEAD(&scheme.ops_filters); in damon_test_set_filters_default_reject() 1147 damos_set_filters_default_reject(&scheme); in damon_test_set_filters_default_reject() 1152 KUNIT_EXPECT_EQ(test, scheme.core_filters_default_reject, false); in damon_test_set_filters_default_reject() 1153 KUNIT_EXPECT_EQ(test, scheme.ops_filters_default_reject, false); in damon_test_set_filters_default_reject() [all …]
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-kernel-mm-damon | 33 'tried_regions' directory of every scheme directory of this 200 directories for controlling each DAMON-based operation scheme 207 of the scheme. 219 the scheme in microseconds. Reading this file returns the 226 size of the scheme's target regions in bytes. 232 size of the scheme's target regions in bytes. 238 'nr_accesses' of the scheme's target regions. 244 'nr_accesses' of the scheme's target regions. 250 'age' of the scheme's target regions. 256 'age' of the scheme's target regions. [all …]
|
| /linux/Documentation/admin-guide/mm/damon/ |
| H A D | usage.rst | 147 DAMON-based operation scheme of the kdamond. For details of the stats, 149 - ``update_schemes_tried_regions``: Update the DAMON-based operation scheme 150 action tried regions directory for each DAMON-based operation scheme of the 151 kdamond. For details of the DAMON-based operation scheme action tried 156 - ``clear_schemes_tried_regions``: Clear the DAMON-based operating scheme 157 action tried regions directory for each DAMON-based operation scheme of the 160 ``effective_bytes`` files for each DAMON-based operation scheme of the 328 to ``N-1``. Each directory represents each DAMON-based operation scheme. 335 In each scheme directory, eight directories (``access_pattern``, ``quotas``, 340 The ``action`` file is for setting and getting the scheme's :ref:`action [all …]
|
| /linux/Documentation/mm/damon/ |
| H A D | design.rst | 216 This scheme, however, cannot preserve the quality of the output if the 494 regions that the scheme is having an interest in. 508 region having the access pattern of interest is found, applying the scheme's 536 scheme action. In contrast, the colder regions would be deprioritized for huge 537 page collapse scheme action. Hence, the prioritization mechanisms for each 563 aggressiveness (the quota) of the corresponding scheme. For example, if DAMOS 609 memory is guaranteed, running a scheme for proactive reclamation would only 617 high watermark or below the low watermark, the scheme is deactivated. If the 618 metric becomes below the mid watermark but above the low watermark, the scheme 642 number of filters for each scheme. Each filter specifies [all …]
|
| /linux/drivers/platform/wmi/ |
| H A D | Kconfig | 27 bool "Use legacy WMI device naming scheme" 30 scheme when creating WMI devices. Doing so might be necessary for some
|
| /linux/drivers/net/wireless/ath/ath9k/ |
| H A D | htc_drv_gpio.c | 176 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE) in ath9k_htc_stop_btcoex() 192 ah->btcoex_hw.scheme = ATH_BTCOEX_CFG_NONE; in ath9k_htc_init_btcoex() 197 ah->btcoex_hw.scheme = ATH_BTCOEX_CFG_3WIRE; in ath9k_htc_init_btcoex()
|
| /linux/Documentation/userspace-api/media/v4l/ |
| H A D | pixfmt-srggb8-pisp-comp.rst | 32 Mode 1 uses a quantization and delta-based coding scheme which preserves up to 33 12 significant bits. Mode 2 is a simple sqrt-like companding scheme with 6 PWL 35 (with 4 chords) and the delta scheme, preserving up to 14 significant bits.
|
| /linux/Documentation/filesystems/ext4/ |
| H A D | ifork.rst | 36 Note that with this block mapping scheme, it is necessary to fill out a 38 led to the creation of the extent mapping scheme, discussed below. 40 Notice also that a file using this mapping scheme cannot be placed 47 tree. Under the old scheme, allocating a contiguous run of 1,000 blocks
|
| /linux/Documentation/scsi/ |
| H A D | aha152x.rst | 126 The BIOS uses a cylinder/head/sector addressing scheme (C/H/S) 127 scheme instead. DOS expects a BIOS or driver that understands this 135 geometry just to be able to support that addressing scheme. The geometry 145 Moreover there are certain limitations to the C/H/S addressing scheme,
|