# ACPI setup on AMD Opteron



## fmw (Apr 6, 2012)

Hi everyone, 

I just had to move my system HD to another computer. The CPU fan mount frame had broken, causing the heatsink to fall off. Needless to say, that didn't go too well with an update run

Anyway, I'm now using an AMD Opteron which dmesg identifies as follows:

```
CPU: Dual Core AMD Opteron(tm) Processor 165 (1809.28-MHz 686-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
powernow0: <Cool`n'Quiet K8> on cpu0
powernow1: <Cool`n'Quiet K8> on cpu1
SMP: AP CPU #1 Launched!
```

I added the following entries to /boot/loader.conf:

```
kern.hz=100
hint.apic.0.clock=0
```

The system is still FreeBSD-8.2-RELEASE/i386; powerd is running. The corresponding BIOS option (Cool`n'Quiet) has been activated, but that only resulted in a minor variation of the fan speed. For some reason, C1 is as good as it gets for me:

```
f_p4# sysctl dev.cpu 
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 1809
dev.cpu.0.freq_levels: 1809/110000 1005/51600
dev.cpu.0.cx_supported: C1/0
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00% last 1644us
dev.cpu.1.%desc: ACPI CPU
dev.cpu.1.%driver: cpu
dev.cpu.1.%location: handle=\_PR_.CPU1
dev.cpu.1.%pnpinfo: _HID=none _UID=0
dev.cpu.1.%parent: acpi0
dev.cpu.1.cx_supported: C1/0
dev.cpu.1.cx_lowest: C1
dev.cpu.1.cx_usage: 100.00% last 498us
```

Any ideas?

Thanks,
Frank


----------



## mav@ (Apr 7, 2012)

AMD CPUs enter deeper sleep states unrelated from OS, using C1E mechanism, so lack of other C-states in report is not surprising. But it is often unsafe to use deeper sleep states with LAPIC timer. For that reason FreeBSD 8.x always tries to block that mechanism. FreeBSD 9.x does it only if LAPIC timer is used, while if some other timer selected during boot, C1E mechanism should stay untouched. Unluckily I don't know the way to detect whether it really works.


----------

