pp_table(9)
β¨ pp_table: the powerplay table upload spot β¨
okay so bestie, quick orientation: this is pp_table(9) from the Kernel API Manual β yes, the nine section, kernel-internals territory, and yes you're gonna slay it. π«Ά
The amdgpu driver gives you a sysfs API for uploading brand-new powerplay tables. That's the whole vibe. And the file it lives in? It's literally called pp_table. iconic naming, no notes. π
π what even happens when you touch it
- Reading the file β it dumps the current power play table right at you. like, hello, here's the table, read it and weep π
- Writing to the file β it'll attempt to upload a new powerplay table and then re-initialize powerplay using that new table. so it's not just "save and done", it re-inits the whole powerplay sitch off your fresh table. main character energy fr fr π₯
ngl bestie, note the word attempt β that's the manpage's word, not mine. writing here kicks off an upload and a powerplay re-initialization off whatever table you handed it, so maybe don't do it for funsies at 3am. π
π SEE ALSO π
okay the SEE ALSO here is genuinely giving group chat with 50 unread messages π β the kernel file itself plus a whole friend group of sysfs power/thermal/fan attributes and their (9) pages. all of them, zero skips, here's the full roll call:
Kernel file ./drivers/gpu/drm/amd/pm/amdgpu_pm.c
amdgpu_pm_dev_state_check(9), amdgpu_pm_get_access(9),
amdgpu_pm_get_access_if_active(9), amdgpu_pm_put_access(9),
power_dpm_state(9), power_dpm_force_performance_level(9),
pp_od_clk_voltage(9), pp_features(9), pp_dpm_sclk pp_dpm_mclk
pp_dpm_socclk pp_dpm_fclk pp_dpm_dcefclk pp_dpm_pcie(9),
pp_power_profile_mode(9), gpu_busy_percent(9), mem_busy_percent(9),
vcn_busy_percent(9), pcie_bw(9), unique_id(9),
thermal_throttling_logging(9), apu_thermal_cap(9), gpu_metrics(9),
smartshift_apu_power(9), smartshift_dgpu_power(9), smartshift_bias(9),
board(9), baseboard_temp(9), gpuboard_temp(9), cur_node_power_limit(9),
node_power(9), npm_status(9), global_ppt_resid(9),
max_node_power_limit(9), baseboard_power(9), baseboard_power_limit(9),
pm_policy(9), hwmon(9), fan_curve(9), acoustic_limit_rpm_threshold(9),
acoustic_target_rpm_threshold(9), fan_target_temperature(9),
fan_minimum_pwm(9), fan_zero_rpm_enable(9),
fan_zero_rpm_stop_temperature(9)
likeβ¦ the pp_dpm_* girlies ate β pp_dpm_sclk, pp_dpm_mclk, pp_dpm_socclk, pp_dpm_fclk, pp_dpm_dcefclk, and pp_dpm_pcie(9) all showing up together. obsessed. β And the fan/acoustic crew at the end (fan_curve(9), acoustic_limit_rpm_threshold(9), acoustic_target_rpm_threshold(9), fan_target_temperature(9), fan_minimum_pwm(9), fan_zero_rpm_enable(9), fan_zero_rpm_stop_temperature(9)) β keeping your rig cool AND quiet, iykyk. π¦
that's the whole page, bestie β short, sweet, and absolutely a write-at-your-own-risk situation. go read ./drivers/gpu/drm/amd/pm/amdgpu_pm.c if you wanna see the source of truth π
with love from ./drivers/gpu/drm/amd/pm, dated October 2026, under the Kernel API Manual banner β catch you in section 9 β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms