radeon dpm:为什么我的电源状态 0 具有与 dmesg 不一致的高值?

radeon dpm:为什么我的电源状态 0 具有与 dmesg 不一致的高值?
# cat /sys/kernel/debug/dri/64/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 37500 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
# cat /sys/class/drm/card0/device/power_dpm_state
balanced
# dmesg | grep -C 10 "power state"
[    2.812211] [drm] radeon/TAHITI_mc2.bin: 31232 bytes
[    2.815019] [drm] Internal thermal controller with fan control
[    2.815074] [drm] probing gen 2 caps for device 8086:c01 = 261ad03/e
[    2.815088] == power state 0 ==
[    2.815089]  ui class: none
[    2.815090]  internal class: boot 
[    2.815091]  caps: 
[    2.815092]  uvd    vclk: 0 dclk: 0
[    2.815093]      power level 0    sclk: 50000 mclk: 15000 vddc: 950 vddci: 875 pcie gen: 3
[    2.815093]  status: c r b 
[    2.815094] == power state 1 ==
[    2.815094]  ui class: performance
[    2.815095]  internal class: none
[    2.815096]  caps: 
[    2.815096]  uvd    vclk: 0 dclk: 0
[    2.815097]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    2.815098]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    2.815099]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    2.815099]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    2.815100]  status: 
[    2.815100] == power state 2 ==
[    2.815101]  ui class: none
[    2.815101]  internal class: uvd 
[    2.815102]  caps: video 
[    2.815103]  uvd    vclk: 100000 dclk: 75000
[    2.815103]      power level 0    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    2.815104]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    2.815105]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    2.815105]  status: 
[    2.815109] input: UVC Camera (046d:08ca) as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0/input/input23
[    2.815157] usbcore: registered new interface driver uvcvideo
--
[    3.483730] [drm]   DDC: 0x6560 0x6560 0x6564 0x6564 0x6568 0x6568 0x656c 0x656c
[    3.483730] [drm]   Encoders:
[    3.483731] [drm]     DFP3: INTERNAL_UNIPHY1
[    3.483731] [drm] Connector 3: 0x658c
[    3.483733] [drm]   Encoders:
[    3.483734] [drm]     DFP4: INTERNAL_UNIPHY
[    3.483734] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[    3.483993] switching from power state:
[    3.483993]  ui class: none
[    3.483994]  internal class: boot 
[    3.483995]  caps: 
[    3.483996]  uvd    vclk: 0 dclk: 0
[    3.483997]      power level 0    sclk: 50000 mclk: 15000 vddc: 950 vddci: 875 pcie gen: 3
[    3.483997]  status: c b 
[    3.483998] switching to power state:
[    3.483999]  ui class: performance
[    3.483999]  internal class: none
[    3.484000]  caps: 
[    3.484001]  uvd    vclk: 0 dclk: 0
[    3.484001]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    3.484002]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    3.484003]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    3.484003]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    3.484004]  status: r 
[    3.591085] [drm] fb mappable at 0xE0478000
--
[    4.743161] systemd-logind[1087]: Watching system buttons on /dev/input/event1 (Sleep Button)
[    4.849961] e1000e 0000:00:19.0: irq 46 for MSI/MSI-X
[    4.945833] vboxdrv: module verification failed: signature and/or  required key missing - tainting kernel
[    4.947907] vboxdrv: Found 8 processor cores.
[    4.948077] vboxdrv: fAsync=0 offMin=0x1e6 offMax=0x1cff
[    4.948150] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
[    4.948152] vboxdrv: Successfully loaded version 4.3.18_Ubuntu (interface 0x001a0008).
[    4.953667] e1000e 0000:00:19.0: irq 46 for MSI/MSI-X
[    4.953737] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.955796] vboxpci: IOMMU not found (not registered)
[    5.653293] switching from power state:
[    5.653295]  ui class: performance
[    5.653296]  internal class: none
[    5.653297]  caps: 
[    5.653298]  uvd    vclk: 0 dclk: 0
[    5.653299]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    5.653299]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    5.653300]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    5.653301]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    5.653301]  status: c r 
[    5.653302] switching to power state:
[    5.653303]  ui class: performance
[    5.653303]  internal class: none
[    5.653304]  caps: 
[    5.653304]  uvd    vclk: 0 dclk: 0
[    5.653305]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    5.653306]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    5.653306]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    5.653307]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    5.653307]  status: c r 
[    5.668135] switching from power state:
[    5.668139]  ui class: performance
[    5.668139]  internal class: none
[    5.668140]  caps: 
[    5.668141]  uvd    vclk: 0 dclk: 0
[    5.668142]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    5.668143]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    5.668144]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    5.668144]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    5.668145]  status: c r 
[    5.668146] switching to power state:
[    5.668148]  ui class: performance
[    5.668148]  internal class: none
[    5.668149]  caps: 
[    5.668149]  uvd    vclk: 0 dclk: 0
[    5.668150]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    5.668151]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    5.668151]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    5.668152]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    5.668152]  status: c r 
[    5.810824] init: plymouth-upstart-bridge main process ended, respawning
--
[    5.831330] systemd-logind[1087]: Failed to start unit [email protected]: Unknown unit: [email protected]
[    5.831334] systemd-logind[1087]: Failed to start user service: Unknown unit: [email protected]
[    5.833494] systemd-logind[1087]: New session c1 of user lightdm.
[    5.833504] systemd-logind[1087]: Linked /tmp/.X11-unix/X0 to /run/user/112/X11-display.
[    8.420297] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[    8.420325] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    8.980945] systemd-logind[1087]: Failed to start unit [email protected]: Unknown unit: [email protected]
[    8.980949] systemd-logind[1087]: Failed to start user service: Unknown unit: [email protected]
[    8.983253] systemd-logind[1087]: New session c2 of user mladen.
[    8.983263] systemd-logind[1087]: Linked /tmp/.X11-unix/X0 to /run/user/1000/X11-display.
[    9.940322] switching from power state:
[    9.940324]  ui class: performance
[    9.940325]  internal class: none
[    9.940326]  caps: 
[    9.940327]  uvd    vclk: 0 dclk: 0
[    9.940328]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    9.940329]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    9.940330]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    9.940330]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    9.940331]  status: c r 
[    9.940332] switching to power state:
[    9.940332]  ui class: performance
[    9.940332]  internal class: none
[    9.940333]  caps: 
[    9.940334]  uvd    vclk: 0 dclk: 0
[    9.940334]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    9.940335]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    9.940336]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    9.940336]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    9.940337]  status: c r 
[    9.994641] switching from power state:
[    9.994644]  ui class: performance
[    9.994645]  internal class: none
[    9.994646]  caps: 
[    9.994646]  uvd    vclk: 0 dclk: 0
[    9.994648]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    9.994648]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    9.994649]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    9.994650]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    9.994650]  status: c r 
[    9.994651] switching to power state:
[    9.994652]  ui class: performance
[    9.994652]  internal class: none
[    9.994653]  caps: 
[    9.994653]  uvd    vclk: 0 dclk: 0
[    9.994654]      power level 0    sclk: 30000 mclk: 15000 vddc: 850 vddci: 875 pcie gen: 3
[    9.994655]      power level 1    sclk: 50100 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
[    9.994655]      power level 2    sclk: 100000 mclk: 150000 vddc: 1144 vddci: 875 pcie gen: 3
[    9.994656]      power level 3    sclk: 110000 mclk: 150000 vddc: 1200 vddci: 875 pcie gen: 3
[    9.994656]  status: c r 
[   34.779117] audit_printk_skb: 72 callbacks suppressed

正如您所见,我包含了 dmesg 中的所有相关部分。

# cat /sys/class/drm/card0/device/power_dpm_force_performance_level
auto
# echo "low" /sys/class/drm/card0/device/power_dpm_force_performance_level
low /sys/class/drm/card0/device/power_dpm_force_performance_level
# echo "low" > /sys/class/drm/card0/device/power_dpm_force_performance_level
# cat /sys/class/drm/card0/device/power_dpm_state
balanced
# cat /sys/kernel/debug/dri/64/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 37500 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
# 
# echo "performance" > /sys/class/drm/card0/device/power_dpm_state
# cat /sys/kernel/debug/dri/64/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 37500 mclk: 150000 vddc: 950 vddci: 875 pcie gen: 3
# 

问题(抱歉说了这么长但我认为它可能有帮助):

为什么在功率等级 0 中这些值如此之高且与 dmesg 不一致?可能是什么原因造成的?

答案1

电源状态会根据 GPU 的当前配置进行动态调整。我怀疑您连接了多个显示器,因此时钟频率更高。动态 mclk 切换是在垂直消隐期间进行的,因此只有在连接单个显示器时才能进行。连接多个显示器时,mclk 被强制为高电平。可能还需要根据当前要求调整最小/最大 sclk 级别。

相关内容