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 user@112.service: Unknown unit: user@112.service
[ 5.831334] systemd-logind[1087]: Failed to start user service: Unknown unit: user@112.service
[ 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 user@1000.service: Unknown unit: user@1000.service
[ 8.980949] systemd-logind[1087]: Failed to start user service: Unknown unit: user@1000.service
[ 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 ответ
Состояние питания динамически регулируется на основе текущей конфигурации графического процессора. Я подозреваю, что у вас есть несколько подключенных дисплеев, почему часы выше. Динамическое переключение mclk выполняется во время периода вертикального гашения, поэтому оно может быть выполнено только при подключенном одиночном дисплее. Когда подключено несколько дисплеев, mclk форсируется. Мин / макс уровни sclk также могут быть скорректированы в зависимости от текущих требований.