# ACPI issues with Supermicro X7SPA-H



## Jago (Mar 8, 2010)

In BIOS, the system sees the CPU at 1,66 Ghz frequency, which is the correct maximum frequency for an Atom D510 CPU. However, upon finishing the boot process, without any tunables, the CPU gets stuck at the wrong frequency: dev.cpu.0.freq: 1249 Mhz, severely degrading performance.

Enabling and starting powerd and then putting the system under load will put the CPU to the correct frequency: dev.cpu.0.freq: 1666, however powerd seems to misbehave as well: After the initial frequency increase of the CPU to 1666 Mhz, the CPU gets stuck at this clockrate. Sometimes powerd will work correctly for a minute or so, correctly adjusting the CPU frequency according to load, but in a very short time, the CPU will get stuck at 1666 Mhz permanently (until reboot).

Changing from "highadaptive" to "adaptive" mode in powerd settings seems to have no effect on this behaviour. I've also made a PR for this issue, containing both my dmesg and output of sysctl -a | grep acpi here: http://www.freebsd.org/cgi/query-pr.cgi?pr=144551

Any ideas?


----------



## mav@ (Mar 8, 2010)

powerd will explain it's behavior if running in foreground with -v.


----------



## Jago (Mar 8, 2010)

OK, now I feel a bit stupid. The second half of my PR at http://www.freebsd.org/cgi/query-pr.cgi?pr=144551 (anything related to powerd behaviour) can be ignored. For testing purposes, I started powerd in the foreground and observed it's behaviour. It works exactly as advertised and apparently the very act of issuing a `sysctl -a | grep dev.cpu.0.freq` command uses up a high % of CPU time for a fraction of a second, resulting in confusing output, I was always getting the highest cpu frequency state as the output. Testing powerd in foreground however, shows correct behaviour, CPU is downclocked both before and after issuing that command 

Still doesn't explain why the system boots up at 1249 Mhz, but that's not that big of an issue at this point now I see that powerd is behaving correctly.

- Sincerely,
Dan Naumov


----------



## DutchDaemon (Mar 8, 2010)

Try `sysctl -n dev.cpu.0.freq` so the system doesn't need to generate the entire array of all possible sysctl values every time.


----------



## SecretAsianMan (Mar 16, 2010)

Thanks for this thread, Jago, mav, and DutchDaemon.  I have a couple of these boards and am now getting around to installing FreeBSD on them.  The dmesg and the CPU speed information will prove quite helpful.


----------

