/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn32/ |
H A D | dcn32_hubbub.c | 170 struct dcn_watermark_set *watermarks, in hubbub32_program_urgent_watermarks() argument 180 if (safe_to_lower || watermarks->a.urgent_ns > hubbub2->watermarks.a.urgent_ns) { in hubbub32_program_urgent_watermarks() 181 hubbub2->watermarks.a.urgent_ns = watermarks->a.urgent_ns; in hubbub32_program_urgent_watermarks() 182 prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns, in hubbub32_program_urgent_watermarks() 189 watermarks->a.urgent_ns, prog_wm_value); in hubbub32_program_urgent_watermarks() 190 } else if (watermarks->a.urgent_ns < hubbub2->watermarks.a.urgent_ns) in hubbub32_program_urgent_watermarks() 194 if (safe_to_lower || watermarks->a.frac_urg_bw_flip in hubbub32_program_urgent_watermarks() 195 > hubbub2->watermarks.a.frac_urg_bw_flip) { in hubbub32_program_urgent_watermarks() 196 hubbub2->watermarks.a.frac_urg_bw_flip = watermarks->a.frac_urg_bw_flip; in hubbub32_program_urgent_watermarks() 199 DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A, watermarks->a.frac_urg_bw_flip); in hubbub32_program_urgent_watermarks() [all …]
|
H A D | dcn32_hubbub.h | 119 struct dcn_watermark_set *watermarks, 125 struct dcn_watermark_set *watermarks, 131 struct dcn_watermark_set *watermarks, 137 struct dcn_watermark_set *watermarks,
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn31/ |
H A D | dcn31_hubbub.c | 153 struct dcn_watermark_set *watermarks, in hubbub31_program_urgent_watermarks() argument 163 if (safe_to_lower || watermarks->a.urgent_ns > hubbub2->watermarks.a.urgent_ns) { in hubbub31_program_urgent_watermarks() 164 hubbub2->watermarks.a.urgent_ns = watermarks->a.urgent_ns; in hubbub31_program_urgent_watermarks() 165 prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns, in hubbub31_program_urgent_watermarks() 172 watermarks->a.urgent_ns, prog_wm_value); in hubbub31_program_urgent_watermarks() 173 } else if (watermarks->a.urgent_ns < hubbub2->watermarks.a.urgent_ns) in hubbub31_program_urgent_watermarks() 177 if (safe_to_lower || watermarks->a.frac_urg_bw_flip in hubbub31_program_urgent_watermarks() 178 > hubbub2->watermarks.a.frac_urg_bw_flip) { in hubbub31_program_urgent_watermarks() 179 hubbub2->watermarks.a.frac_urg_bw_flip = watermarks->a.frac_urg_bw_flip; in hubbub31_program_urgent_watermarks() 182 DCHUBBUB_ARB_FRAC_URG_BW_FLIP_A, watermarks->a.frac_urg_bw_flip); in hubbub31_program_urgent_watermarks() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn21/ |
H A 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 …]
|
H A 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,
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn10/ |
H A 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 …]
|
H A D | dcn10_hubbub.h | 402 struct dcn_watermark_set watermarks; member 416 struct dcn_watermark_set *watermarks, 439 struct dcn_watermark_set *watermarks, 444 struct dcn_watermark_set *watermarks, 449 struct dcn_watermark_set *watermarks,
|
/openbmc/linux/mm/damon/ |
H A D | sysfs-schemes.c | 620 struct damon_sysfs_watermarks *watermarks = kmalloc( in damon_sysfs_watermarks_alloc() local 621 sizeof(*watermarks), GFP_KERNEL); in damon_sysfs_watermarks_alloc() 623 if (!watermarks) in damon_sysfs_watermarks_alloc() 625 watermarks->kobj = (struct kobject){}; in damon_sysfs_watermarks_alloc() 626 watermarks->metric = metric; in damon_sysfs_watermarks_alloc() 627 watermarks->interval_us = interval_us; in damon_sysfs_watermarks_alloc() 628 watermarks->high = high; in damon_sysfs_watermarks_alloc() 629 watermarks->mid = mid; in damon_sysfs_watermarks_alloc() 630 watermarks->low = low; in damon_sysfs_watermarks_alloc() 631 return watermarks; in damon_sysfs_watermarks_alloc() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dml/dcn30/ |
H A D | dcn30_fpu.c | 441 …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() 442 …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() 443 …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() 444 …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() 445 …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() 446 …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() 447 …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() 448 …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() 511 …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() 512 …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 …]
|
/openbmc/linux/Documentation/translations/zh_CN/admin-guide/mm/damon/ |
H A D | usage.rst | 83 │ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low 211 在每个方案目录中,存在五个目录(``access_pattern``、``quotas``、``watermarks``、 255 schemes/<N>/watermarks/ 329 # echo free_mem_rate > watermarks/metric 330 # echo 5000000 > watermarks/interval_us 331 # echo 600 > watermarks/high 332 # echo 500 > watermarks/mid 333 # echo 300 > watermarks/low 430 <target access pattern> <action> <quota> <watermarks> 517 # scheme+=" 1 5000000 600 500 300" # watermarks
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dml/dcn31/ |
H A D | dcn31_fpu.c | 515 …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() 516 …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() 517 …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() 518 …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() 519 …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() 520 …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() 521 …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() 522 …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() 523 …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() 524 …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 …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dml/calcs/ |
H A 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 …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn201/ |
H A 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()
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/ |
H A D | vg_clk_mgr.h | 30 struct watermarks; 36 struct watermarks *wm_set;
|
H A D | vg_clk_mgr.c | 386 static void vg_build_watermark_ranges(struct clk_bw_params *bw_params, struct watermarks *table) in vg_build_watermark_ranges() 446 struct watermarks *table = clk_mgr_vgh->smu_wm_set.wm_set; in vg_notify_wm_ranges() 636 static struct watermarks dummy_wms = { 0 }; 680 clk_mgr->smu_wm_set.wm_set = (struct watermarks *)dm_helpers_allocate_gpu_mem( in vg_clk_mgr_construct() 683 sizeof(struct watermarks), in vg_clk_mgr_construct()
|
H A D | dcn301_smu.h | 129 struct watermarks { struct
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dml/dcn20/ |
H A D | dcn20_fpu.c | 1792 …context->bw_ctx.bw.dcn.watermarks.b.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn20_calculate_wm() 1793 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn20_calculate_wm() 1794 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.cstate_exit_ns = get_wm_stutter_exit(&context->b… in dcn20_calculate_wm() 1795 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.pstate_change_ns = get_wm_dram_clock_change(&con… in dcn20_calculate_wm() 1796 …context->bw_ctx.bw.dcn.watermarks.b.pte_meta_urgent_ns = get_wm_memory_trip(&context->bw_ctx.dml, … in dcn20_calculate_wm() 1797 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_nom = get_fraction_of_urgent_bandwidth(&context->b… in dcn20_calculate_wm() 1798 …context->bw_ctx.bw.dcn.watermarks.b.frac_urg_bw_flip = get_fraction_of_urgent_bandwidth_imm_flip(&… in dcn20_calculate_wm() 1799 …context->bw_ctx.bw.dcn.watermarks.b.urgent_latency_ns = get_urgent_latency(&context->bw_ctx.dml, p… in dcn20_calculate_wm() 1806 …context->bw_ctx.bw.dcn.watermarks.c.urgent_ns = get_wm_urgent(&context->bw_ctx.dml, pipes, pipe_cn… in dcn20_calculate_wm() 1807 …context->bw_ctx.bw.dcn.watermarks.c.cstate_pstate.cstate_enter_plus_exit_ns = get_wm_stutter_enter… in dcn20_calculate_wm() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn30/ |
H A 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()
|
/openbmc/linux/Documentation/admin-guide/mm/damon/ |
H A 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.
|
H A 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
|
H A D | usage.rst | 86 │ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low 273 ``watermarks``, ``filters``, ``stats``, and ``tried_regions``) and one file 336 schemes/<N>/watermarks/ 339 The directory for the :ref:`watermarks <damon_design_damos_watermarks>` of the 342 Under the watermarks directory, five files (``metric``, ``interval_us``, 344 between check of the metric, and the three watermarks exist. You can set and 350 - none: Ignore the watermarks 488 # echo free_mem_rate > watermarks/metric 489 # echo 5000000 > watermarks/interval_us 490 # echo 600 > watermarks/high [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dml/dcn32/ |
H A D | dcn32_fpu.c | 2092 …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() 2093 …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() 2094 …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() 2095 …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() 2096 …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() 2097 …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() 2098 …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() 2099 …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() 2100 …context->bw_ctx.bw.dcn.watermarks.b.cstate_pstate.fclk_pstate_change_ns = get_fclk_watermark(&cont… in dcn32_calculate_wm_and_dlg_fpu() 2101 …context->bw_ctx.bw.dcn.watermarks.b.usr_retraining_ns = get_usr_retraining_watermark(&context->bw_… in dcn32_calculate_wm_and_dlg_fpu() [all …]
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dml/dcn301/ |
H A D | dcn301_fpu.c | 434 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.d, in dcn301_calculate_wm_and_dlg_fp() 439 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.c, in dcn301_calculate_wm_and_dlg_fp() 444 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.b, in dcn301_calculate_wm_and_dlg_fp() 450 calculate_wm_set_for_vlevel(vlevel, table_entry, &context->bw_ctx.bw.dcn.watermarks.a, in dcn301_calculate_wm_and_dlg_fp()
|
/openbmc/linux/drivers/gpu/drm/amd/display/dc/dcn20/ |
H A 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()
|
/openbmc/linux/Documentation/ABI/testing/ |
H A D | sysfs-kernel-mm-damon | 229 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/metric 233 of the watermarks for the scheme. The writable/readable 234 keywords for this file are 'none' for disabling the watermarks 238 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/interval_us 242 check interval of the watermarks for the scheme in 245 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/high 251 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/mid 257 What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/watermarks/low
|