problems getting AMD C-70 APU working with powerd/cpufreq
Ian Smith
smithi at nimnet.asn.au
Sat Oct 14 11:36:14 UTC 2017
On Fri, 13 Oct 2017 13:37:21 +0100, tech-lists wrote:
> Hi,
>
> I have a netbook with amd c-70 cpu and am trying to get powerd
> to work with it. Will this chip not work with cpufreq/powerd?
Perhaps not.
> system: FreeBSD 11.1-STABLE #0 r324342
>
> # sysctl debug.cpufreq.verbose=1
> debug.cpufreq.verbose: 0 -> 1
This shows that cpufreq was alreasy loaded. It's in the GENERIC kernel.
Have a good browse through cpufreq(4).
> # kldload cpufreq
> #
Hmm, no message. When I do that (albeit verbose boot enabled) on 9.3:
kldload: can't load cpufreq: module already loaded or in kernel
> # powerd -vv
> powerd: no cpufreq(4) support -- aborting: No such file or directory
>
> # sysctl -a | grep cpu
>
> kern.smp.cpus: 2
> kern.smp.maxcpus: 256
> kern.ccpu: 0
> <cpu count="2" mask="3,0,0,0">0, 1</cpu>
> <cpu count="1" mask="1,0,0,0">0</cpu>
> <cpu count="1" mask="2,0,0,0">1</cpu>
> kern.sched.cpusetsize: 32
> kern.pin_pcpu_swi: 0
> kern.racct.pcpu_threshold: 1
> cpu HAMMER
> kern.vt.splash_cpu_duration: 10
> kern.vt.splash_cpu_style: 2
> kern.vt.splash_ncpu: 0
> kern.vt.splash_cpu: 0
> vfs.ncpurgeminvnodes: 256
> net.inet.tcp.per_cpu_timers: 0
> debug.cpufreq.verbose: 1
> debug.cpufreq.lowest: 0
> debug.acpi.cpu_unordered: 0
> hw.ncpu: 2
> hw.acpi.cpu.cx_lowest: C2
> dev.acpi_perf.1.%parent: cpu1
> dev.acpi_perf.0.%parent: cpu0
These are interesting. In cpufreq(4) you'll see acpi_perf is one of the
absolute frequency control drivers, presumably used (see also in dmesg)
because the expected driver for AMD processors, powernow, did not attach
- though your verbose dmesg shows nothing about any failure/s to attach.
> dev.cpu.1.cx_method: C1/hlt C2/io
> dev.cpu.1.cx_usage_counters: 237351 1893186
> dev.cpu.1.cx_usage: 11.14% 88.85% last 156us
> dev.cpu.1.cx_lowest: C2
At least you're getting plentiful use of C2 state, though I'm not aware
how much power saving that might buy you on that AMD CPU.
> dev.cpu.1.cx_supported: C1/1/0 C2/2/100
> dev.cpu.1.temperature: 65.6C
> dev.cpu.1.%parent: acpi0
> dev.cpu.1.%pnpinfo: _HID=none _UID=0
> dev.cpu.1.%location: handle=\_PR_.C001
> dev.cpu.1.%driver: cpu
> dev.cpu.1.%desc: ACPI CPU
> dev.cpu.0.cx_method: C1/hlt C2/io
> dev.cpu.0.cx_usage_counters: 368369 2358900
> dev.cpu.0.cx_usage: 13.50% 86.49% last 13us
> dev.cpu.0.cx_lowest: C2
Ditto.
> dev.cpu.0.cx_supported: C1/1/0 C2/2/100
> dev.cpu.0.temperature: 65.6C
> dev.cpu.0.%parent: acpi0
> dev.cpu.0.%pnpinfo: _HID=none _UID=0
> dev.cpu.0.%location: handle=\_PR_.C000
> dev.cpu.0.%driver: cpu
> dev.cpu.0.%desc: ACPI CPU
So, there's no dev.cpu.0.freq nor dev.cpu.0.freq_levels - therefore
powerd has nothing to work with. Its (misleading?) message doesn't mean
cpufreq not loaded, but that the sysctls powerd relies upon don't exist.
> cpuid output:
> https://www.zyxst.net/txt/amd-c70-netbook/20171011-cpuid-c70.txt
> dmidecode output:
> https://www.zyxst.net/txt/amd-c70-netbook/20171011-dmidecode-c70.txt
> detailed dmesg:
> https://www.zyxst.net/txt/amd-c70-netbook/20171011-2.detailed-dmesg.txt
Nothing in any of those suggests that this cpu has any other frequency
available than 1000MHz, which seems quite bizarre to me. Of course it's
possible FreeBSD hasn't been taught to recognise this particular cpu.
You haven't disabled anything in $BIOS related to power or freq control?
The cpuid output has a heading "Advanced Power Management Feature Flags"
near the bottom, but none are shown.
Hope someone else has something more useful to offer, and thanks for
mailing me those files when my browser was deemed too old for your site.
cheers, Ian
More information about the freebsd-mobile
mailing list