/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn32/ |
D | dcn32_hubbub.c | 149 struct dcn_watermark_set *watermarks, in hubbub32_program_urgent_watermarks() argument 159 if (safe_to_lower || watermarks->a.urgent_ns > hubbub2->watermarks.a.urgent_ns) { in hubbub32_program_urgent_watermarks() 160 hubbub2->watermarks.a.urgent_ns = watermarks->a.urgent_ns; in hubbub32_program_urgent_watermarks() 161 prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns, in hubbub32_program_urgent_watermarks() 168 watermarks->a.urgent_ns, prog_wm_value); in hubbub32_program_urgent_watermarks() 169 } else if (watermarks->a.urgent_ns < hubbub2->watermarks.a.urgent_ns) in hubbub32_program_urgent_watermarks() 173 if (safe_to_lower || watermarks->a.frac_urg_bw_flip in hubbub32_program_urgent_watermarks() 174 > hubbub2->watermarks.a.frac_urg_bw_flip) { in hubbub32_program_urgent_watermarks() 175 hubbub2->watermarks.a.frac_urg_bw_flip = watermarks->a.frac_urg_bw_flip; in hubbub32_program_urgent_watermarks() 178 DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A, watermarks->a.frac_urg_bw_flip); in hubbub32_program_urgent_watermarks() [all …]
|
D | dcn32_hubbub.h | 166 struct dcn_watermark_set *watermarks, 172 struct dcn_watermark_set *watermarks, 178 struct dcn_watermark_set *watermarks, 184 struct dcn_watermark_set *watermarks,
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn31/ |
D | dcn31_hubbub.c | 152 struct dcn_watermark_set *watermarks, in hubbub31_program_urgent_watermarks() argument 162 if (safe_to_lower || watermarks->a.urgent_ns > hubbub2->watermarks.a.urgent_ns) { in hubbub31_program_urgent_watermarks() 163 hubbub2->watermarks.a.urgent_ns = watermarks->a.urgent_ns; in hubbub31_program_urgent_watermarks() 164 prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns, in hubbub31_program_urgent_watermarks() 171 watermarks->a.urgent_ns, prog_wm_value); in hubbub31_program_urgent_watermarks() 172 } else if (watermarks->a.urgent_ns < hubbub2->watermarks.a.urgent_ns) in hubbub31_program_urgent_watermarks() 176 if (safe_to_lower || watermarks->a.frac_urg_bw_flip in hubbub31_program_urgent_watermarks() 177 > hubbub2->watermarks.a.frac_urg_bw_flip) { in hubbub31_program_urgent_watermarks() 178 hubbub2->watermarks.a.frac_urg_bw_flip = watermarks->a.frac_urg_bw_flip; in hubbub31_program_urgent_watermarks() 181 DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A, watermarks->a.frac_urg_bw_flip); in hubbub31_program_urgent_watermarks() [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn21/ |
D | dcn21_hubbub.c | 143 struct dcn_watermark_set *watermarks, in hubbub21_program_urgent_watermarks() argument 153 if (safe_to_lower || watermarks->a.urgent_ns > hubbub1->watermarks.a.urgent_ns) { in hubbub21_program_urgent_watermarks() 154 hubbub1->watermarks.a.urgent_ns = watermarks->a.urgent_ns; in hubbub21_program_urgent_watermarks() 155 prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns, in hubbub21_program_urgent_watermarks() 163 watermarks->a.urgent_ns, prog_wm_value); in hubbub21_program_urgent_watermarks() 164 } else if (watermarks->a.urgent_ns < hubbub1->watermarks.a.urgent_ns) in hubbub21_program_urgent_watermarks() 168 if (safe_to_lower || watermarks->a.frac_urg_bw_flip in hubbub21_program_urgent_watermarks() 169 > hubbub1->watermarks.a.frac_urg_bw_flip) { in hubbub21_program_urgent_watermarks() 170 hubbub1->watermarks.a.frac_urg_bw_flip = watermarks->a.frac_urg_bw_flip; in hubbub21_program_urgent_watermarks() 173 DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A, watermarks->a.frac_urg_bw_flip); in hubbub21_program_urgent_watermarks() [all …]
|
D | dcn21_hubbub.h | 130 struct dcn_watermark_set *watermarks, 135 struct dcn_watermark_set *watermarks, 140 struct dcn_watermark_set *watermarks, 145 struct dcn_watermark_set *watermarks,
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn10/ |
D | dcn10_hubbub.c | 245 struct dcn_watermark_set *watermarks, in hubbub1_program_urgent_watermarks() argument 255 if (safe_to_lower || watermarks->a.urgent_ns > hubbub1->watermarks.a.urgent_ns) { in hubbub1_program_urgent_watermarks() 256 hubbub1->watermarks.a.urgent_ns = watermarks->a.urgent_ns; in hubbub1_program_urgent_watermarks() 257 prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns, in hubbub1_program_urgent_watermarks() 264 watermarks->a.urgent_ns, prog_wm_value); in hubbub1_program_urgent_watermarks() 265 } else if (watermarks->a.urgent_ns < hubbub1->watermarks.a.urgent_ns) in hubbub1_program_urgent_watermarks() 268 if (safe_to_lower || watermarks->a.pte_meta_urgent_ns > hubbub1->watermarks.a.pte_meta_urgent_ns) { in hubbub1_program_urgent_watermarks() 269 hubbub1->watermarks.a.pte_meta_urgent_ns = watermarks->a.pte_meta_urgent_ns; in hubbub1_program_urgent_watermarks() 270 prog_wm_value = convert_and_clamp(watermarks->a.pte_meta_urgent_ns, in hubbub1_program_urgent_watermarks() 275 watermarks->a.pte_meta_urgent_ns, prog_wm_value); in hubbub1_program_urgent_watermarks() [all …]
|
D | dcn10_hubbub.h | 390 struct dcn_watermark_set watermarks; member 404 struct dcn_watermark_set *watermarks, 427 struct dcn_watermark_set *watermarks, 432 struct dcn_watermark_set *watermarks, 437 struct dcn_watermark_set *watermarks,
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dml/dcn30/ |
D | dcn30_fpu.c | 410 …context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn30_fpu_calculate_wm_and_dlg() 411 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn30_fpu_calculate_wm_and_dlg() 412 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->b… in dcn30_fpu_calculate_wm_and_dlg() 413 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&con… in dcn30_fpu_calculate_wm_and_dlg() 414 …context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, … in dcn30_fpu_calculate_wm_and_dlg() 415 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->b… in dcn30_fpu_calculate_wm_and_dlg() 416 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&… in dcn30_fpu_calculate_wm_and_dlg() 417 …context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, p… in dcn30_fpu_calculate_wm_and_dlg() 466 …context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn30_fpu_calculate_wm_and_dlg() 467 …context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn30_fpu_calculate_wm_and_dlg() [all …]
|
/linux-6.1.9/Documentation/translations/zh_CN/admin-guide/mm/damon/ |
D | usage.rst | 83 │ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low 202 在每个方案目录中,存在四个目录(``access_pattern``, ``quotas``,``watermarks``, 246 schemes/<N>/watermarks/ 302 # echo free_mem_rate > watermarks/metric 303 # echo 5000000 > watermarks/interval_us 304 # echo 600 > watermarks/high 305 # echo 500 > watermarks/mid 306 # echo 300 > watermarks/low 398 <target access pattern> <action> <quota> <watermarks> 485 # scheme+=" 1 5000000 600 500 300" # watermarks
|
/linux-6.1.9/mm/damon/ |
D | sysfs.c | 232 struct damon_sysfs_watermarks *watermarks = kmalloc( in damon_sysfs_watermarks_alloc() local 233 sizeof(*watermarks), GFP_KERNEL); in damon_sysfs_watermarks_alloc() 235 if (!watermarks) in damon_sysfs_watermarks_alloc() 237 watermarks->kobj = (struct kobject){}; in damon_sysfs_watermarks_alloc() 238 watermarks->metric = metric; in damon_sysfs_watermarks_alloc() 239 watermarks->interval_us = interval_us; in damon_sysfs_watermarks_alloc() 240 watermarks->high = high; in damon_sysfs_watermarks_alloc() 241 watermarks->mid = mid; in damon_sysfs_watermarks_alloc() 242 watermarks->low = low; in damon_sysfs_watermarks_alloc() 243 return watermarks; in damon_sysfs_watermarks_alloc() [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dml/dcn31/ |
D | dcn31_fpu.c | 513 …context->bw_ctx.bw.dcn.watermarks.a.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn31_calculate_wm_and_dlg_fp() 514 …context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn31_calculate_wm_and_dlg_fp() 515 …context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->b… in dcn31_calculate_wm_and_dlg_fp() 516 …context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&con… in dcn31_calculate_wm_and_dlg_fp() 517 …context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_z8_ns = get_wm_z8_stutter… in dcn31_calculate_wm_and_dlg_fp() 518 …context->bw_ctx.bw.dcn.watermarks.a.cstate_pstate.cstate_exit_z8_ns = get_wm_z8_stutter_exit(&cont… in dcn31_calculate_wm_and_dlg_fp() 519 …context->bw_ctx.bw.dcn.watermarks.a.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, … in dcn31_calculate_wm_and_dlg_fp() 520 …context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->b… in dcn31_calculate_wm_and_dlg_fp() 521 …context->bw_ctx.bw.dcn.watermarks.a.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&… in dcn31_calculate_wm_and_dlg_fp() 522 …context->bw_ctx.bw.dcn.watermarks.a.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, p… in dcn31_calculate_wm_and_dlg_fp() [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dml/calcs/ |
D | dcn_calcs.c | 566 context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = 568 context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = 570 context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = 572 context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = v->ptemeta_urgent_watermark * 1000; 573 context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = v->urgent_watermark * 1000; 580 context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_exit_ns = 582 context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = 584 context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.pstate_change_ns = 586 context->bw_ctx.bw.dcn.watermarks.c.pte_meta_urgent_ns = v->ptemeta_urgent_watermark * 1000; 587 context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = v->urgent_watermark * 1000; [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn201/ |
D | dcn201_hubbub.c | 55 struct dcn_watermark_set *watermarks, in hubbub201_program_watermarks() argument 62 if (hubbub1_program_urgent_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub201_program_watermarks() 65 if (hubbub1_program_pstate_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub201_program_watermarks()
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/ |
D | vg_clk_mgr.h | 30 struct watermarks; 36 struct watermarks *wm_set;
|
D | vg_clk_mgr.c | 388 static void vg_build_watermark_ranges(struct clk_bw_params *bw_params, struct watermarks *table) in vg_build_watermark_ranges() 448 struct watermarks *table = clk_mgr_vgh->smu_wm_set.wm_set; in vg_notify_wm_ranges() 621 static struct watermarks dummy_wms = { 0 }; 664 clk_mgr->smu_wm_set.wm_set = (struct watermarks *)dm_helpers_allocate_gpu_mem( in vg_clk_mgr_construct() 667 sizeof(struct watermarks), in vg_clk_mgr_construct()
|
D | dcn301_smu.h | 129 struct watermarks { struct
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dml/dcn32/ |
D | dcn32_fpu.c | 1850 …context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn32_calculate_wm_and_dlg_fpu() 1851 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn32_calculate_wm_and_dlg_fpu() 1852 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->b… in dcn32_calculate_wm_and_dlg_fpu() 1853 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&con… in dcn32_calculate_wm_and_dlg_fpu() 1854 …context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, … in dcn32_calculate_wm_and_dlg_fpu() 1855 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->b… in dcn32_calculate_wm_and_dlg_fpu() 1856 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&… in dcn32_calculate_wm_and_dlg_fpu() 1857 …context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, p… in dcn32_calculate_wm_and_dlg_fpu() 1858 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.fclk_pstate_change_ns = get_fclk_watermark(&cont… in dcn32_calculate_wm_and_dlg_fpu() 1859 …context->bw_ctx.bw.dcn.watermarks.b.usr_retraining_ns = get_usr_retraining_watermark(&context->bw_… in dcn32_calculate_wm_and_dlg_fpu() [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dml/dcn20/ |
D | dcn20_fpu.c | 1642 …context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn20_calculate_wm() 1643 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn20_calculate_wm() 1644 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->b… in dcn20_calculate_wm() 1645 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&con… in dcn20_calculate_wm() 1646 …context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, … in dcn20_calculate_wm() 1647 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->b… in dcn20_calculate_wm() 1648 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&… in dcn20_calculate_wm() 1649 …context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, p… in dcn20_calculate_wm() 1656 …context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn20_calculate_wm() 1657 …context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn20_calculate_wm() [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn30/ |
D | dcn30_hubbub.c | 98 struct dcn_watermark_set *watermarks, in hubbub3_program_watermarks() argument 105 if (hubbub21_program_urgent_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub3_program_watermarks() 108 if (hubbub21_program_stutter_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub3_program_watermarks() 111 if (hubbub21_program_pstate_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub3_program_watermarks() 379 uint32_t prog_wm_value = convert_and_clamp(hubbub1->watermarks.a.urgent_ns, in hubbub3_force_wm_propagate_to_pipes()
|
/linux-6.1.9/Documentation/admin-guide/mm/damon/ |
D | lru_sort.rst | 40 pressure watermarks. 68 no real monitoring and LRU-lists sorting due to the watermarks-based activation 69 condition. Refer to below descriptions for the watermarks parameter for this. 127 The watermarks check time interval in microseconds. 129 Minimal time to wait before checking the watermarks, when DAMON_LRU_SORT is 130 enabled but inactive due to its watermarks rule. 5 seconds by default. 139 watermarks. 200 (20%) by default. 157 watermarks. 50 (5%) by default.
|
D | reclaim.rst | 38 automatically activated and deactivated with three memory pressure watermarks. 60 no real monitoring and reclamation due to the watermarks-based activation 61 condition. Refer to below descriptions for the watermarks parameter for this. 123 Minimal time to wait before checking the watermarks, when DAMON_RECLAIM is 124 enabled but inactive due to its watermarks rule. 133 the watermarks. 151 watermarks. In the case, the system falls back to the LRU-list based page
|
D | usage.rst | 89 │ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low 256 ``watermarks``, and ``stats``) and one file (``action``) exist. 311 schemes/<N>/watermarks/ 315 status, DAMON provides a feature called watermarks. The feature receives five 322 Under the watermarks directory, five files (``metric``, ``interval_us``, 329 - none: Ignore the watermarks 381 # echo free_mem_rate > watermarks/metric 382 # echo 5000000 > watermarks/interval_us 383 # echo 600 > watermarks/high 384 # echo 500 > watermarks/mid [all …]
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dml/dcn301/ |
D | dcn301_fpu.c | 436 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.d, in dcn301_calculate_wm_and_dlg_fp() 441 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.c, in dcn301_calculate_wm_and_dlg_fp() 446 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.b, in dcn301_calculate_wm_and_dlg_fp() 452 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.a, in dcn301_calculate_wm_and_dlg_fp()
|
/linux-6.1.9/Documentation/ABI/testing/ |
D | sysfs-kernel-mm-damon | 223 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/metric 227 of the watermarks for the scheme. The writable/readable 228 keywords for this file are 'none' for disabling the watermarks 232 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/interval_us 236 check interval of the watermarks for the scheme in 239 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/high 245 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/mid 251 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/low
|
/linux-6.1.9/drivers/gpu/drm/amd/display/dc/dcn20/ |
D | dcn20_hubbub.c | 573 struct dcn_watermark_set *watermarks, in hubbub2_program_watermarks() argument 583 if (hubbub1_program_urgent_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub2_program_watermarks() 586 if (hubbub1_program_stutter_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower)) in hubbub2_program_watermarks() 598 hubbub1_program_pstate_watermarks(hubbub, watermarks, refclk_mhz, safe_to_lower); in hubbub2_program_watermarks()
|