Bug #2025

CPU P-States not available to powerd(8)

Added by herrgard about 3 years ago. Updated almost 3 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Hi,

My box shows the P-States in dmesg:

cpu_pst0.cpu0.acpi0.nexus0.root0
cpu_pst0: <ACPI CPU P-State> [tentative] on cpu0
cpu_pst0: control reg 127 0
cpu_pst0: status reg 127 0
cpu_pst0: freq 1800, pwr 67000, xlat 100, blat 9, cv e020298a, sv 0000018a
cpu_pst0: freq 1000, pwr 21000, xlat 100, blat 9, cv e0202c82, sv 00000482
cpu_pst0: _PPC 0
cpu_pst0: <ACPI CPU P-State> [attached!] on cpu0

But powerd(8) won't start:

> sudo rcforce powerd
Running /etc/rc.d/powerd forcestart
Starting powerd.
hw.acpi.cpu.px_dom* sysctl not available
powerd has failed to start

hw.acpi:

> sysctl hw.acpi
hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S3
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 1
hw.acpi.s4bios: 0
hw.acpi.verbose: 1
hw.acpi.disable_on_reboot: 0
hw.acpi.handle_reboot: 0
hw.acpi.reset_video: 1
hw.acpi.cpu.cx_lowest: C1
hw.acpi.cpu0.cx_supported: C1/0
hw.acpi.cpu0.cx_lowest: C1
hw.acpi.cpu0.cx_usage: 100.00% last 5000us

Verbose dmesg attached.

dmesg (45.2 KB) herrgard, 03/15/2011 05:29 PM

History

#1 Updated by sepherosa about 3 years ago

On Wed, Mar 16, 2011 at 1:29 AM, Max Herrgard (via DragonFly issue
tracker) <> wrote:
>
> New submission from Max Herrgard <>:
>
> Hi,
>
> My box shows the P-States in dmesg:
>
> cpu_pst0.cpu0.acpi0.nexus0.root0
> cpu_pst0: <ACPI CPU P-State> [tentative] on cpu0
> cpu_pst0: control reg 127 0
> cpu_pst0: status reg 127 0
> cpu_pst0: freq 1800, pwr 67000, xlat 100, blat 9, cv e020298a, sv 0000018a
> cpu_pst0: freq 1000, pwr 21000, xlat 100, blat 9, cv e0202c82, sv 00000482
> cpu_pst0: _PPC 0
> cpu_pst0: <ACPI CPU P-State> [attached!] on cpu0
>
> But powerd(8) won't start:
>
>> sudo rcforce powerd
> Running /etc/rc.d/powerd forcestart
> Starting powerd.
> hw.acpi.cpu.px_dom* sysctl not available
> powerd has failed to start
>
> hw.acpi:
>
>> sysctl hw.acpi
> hw.acpi.supported_sleep_state: S3 S4 S5
> hw.acpi.power_button_state: S5
> hw.acpi.sleep_button_state: S3
> hw.acpi.lid_switch_state: NONE
> hw.acpi.standby_state: S1
> hw.acpi.suspend_state: S3
> hw.acpi.sleep_delay: 1
> hw.acpi.s4bios: 0
> hw.acpi.verbose: 1
> hw.acpi.disable_on_reboot: 0
> hw.acpi.handle_reboot: 0
> hw.acpi.reset_video: 1
> hw.acpi.cpu.cx_lowest: C1
> hw.acpi.cpu0.cx_supported: C1/0
> hw.acpi.cpu0.cx_lowest: C1
> hw.acpi.cpu0.cx_usage: 100.00% last 5000us
>
> Verbose dmesg attached.

Invalid FID is detected (later in the dmesg):
cpu0: Invalid FID 0x2 [0xa, 0xa]
ACPI: domain0 P-State configuration check failed

Well, the check logic for the max/min P-states probably should be
different from the check logic for intermediate P-states. I will push
a fix tonight.

Best Regards,
sephe

#2 Updated by sepherosa about 3 years ago

Please test the latest master

#3 Updated by herrgard about 3 years ago

Yes, now it shows this:

cpu_cst0: <ACPI CPU C-State> [tentative] on cpu0
cpu_cst0: switching to generic Cx mode
cpu_cst0: <ACPI CPU C-State> [attached!] on cpu0
cpu_pst0.cpu0.acpi0.nexus0.root0
cpu_pst0: <ACPI CPU P-State> [tentative] on cpu0
cpu_pst0: control reg 127 0
cpu_pst0: status reg 127 0
cpu_pst0: freq 1800, pwr 67000, xlat 100, blat 9, cv e020298a, sv 0000018a
cpu_pst0: freq 1000, pwr 21000, xlat 100, blat 9, cv e0202c82, sv 00000482
cpu_pst0: _PPC 0
cpu_pst0: <ACPI CPU P-State> [attached!] on cpu0
...
cpu0: only one P-State is supported
ACPI: domain0 P-State configuration check failed

So I guess my box doesn't support it. But why does it then print two available
frequencies (1000 MHz and 1800 MHz)?

#4 Updated by sepherosa about 3 years ago

On Thu, Mar 17, 2011 at 1:33 AM, Max Herrgard (via DragonFly issue
tracker) <> wrote:
>
> Max Herrgard <> added the comment:
>
> Yes, now it shows this:
>
> cpu_cst0: <ACPI CPU C-State> [tentative] on cpu0
> cpu_cst0: switching to generic Cx mode
> cpu_cst0: <ACPI CPU C-State> [attached!] on cpu0
> cpu_pst0.cpu0.acpi0.nexus0.root0
> cpu_pst0: <ACPI CPU P-State> [tentative] on cpu0
> cpu_pst0: control reg 127 0
> cpu_pst0: status reg 127 0
> cpu_pst0: freq 1800, pwr 67000, xlat 100, blat 9, cv e020298a, sv 0000018a
> cpu_pst0: freq 1000, pwr 21000, xlat 100, blat 9, cv e0202c82, sv 00000482
> cpu_pst0: _PPC 0
> cpu_pst0: <ACPI CPU P-State> [attached!] on cpu0
> ...
> cpu0: only one P-State is supported
> ACPI: domain0 P-State configuration check failed
>
> So I guess my box doesn't support it. But why does it then print two available
> frequencies (1000 MHz and 1800 MHz)?

The check is conducted according to AMD #32559 page 300.

Well, try this patch:
http://leaf.dragonflybsd.org/~sephe/0Fh_fid.diff

It may be dangerous, if BIOS does generate wrong P-States.

Best Regards,
sephe

#5 Updated by herrgard about 3 years ago

Sepherosa Ziehau wrote:
> On Thu, Mar 17, 2011 at 1:33 AM, Max Herrgard (via DragonFly issue
> tracker)<> wrote:
>> ...
>> So I guess my box doesn't support it. But why does it then print two available
>> frequencies (1000 MHz and 1800 MHz)?
>
> The check is conducted according to AMD #32559 page 300.
>
> Well, try this patch:
> http://leaf.dragonflybsd.org/~sephe/0Fh_fid.diff
>
> It may be dangerous, if BIOS does generate wrong P-States.

Okay, no luck, patch didn't change anything.

But with powernow.ko loaded I get speeds:

Cool`n'Quiet speeds: 1800 1000 MHz

# sysctl machdep.powernow
machdep.powernow.frequency.target: 1800
machdep.powernow.frequency.current: 1800
machdep.powernow.frequency.available: 1800 1000

Max

#6 Updated by sepherosa about 3 years ago

On Fri, Mar 18, 2011 at 1:21 AM, Max Herrgard (via DragonFly issue
tracker) <> wrote:
>
> Max Herrgard <> added the comment:
>
> Sepherosa Ziehau wrote:
>> On Thu, Mar 17, 2011 at 1:33 AM, Max Herrgard (via DragonFly issue
>> tracker)<>  wrote:
>>> ...
>>> So I guess my box doesn't support it. But why does it then print two available
>>> frequencies (1000 MHz and 1800 MHz)?
>>
>> The check is conducted according to AMD #32559 page 300.
>>
>> Well, try this patch:
>> http://leaf.dragonflybsd.org/~sephe/0Fh_fid.diff
>>
>> It may be dangerous, if BIOS does generate wrong P-States.
>
> Okay, no luck, patch didn't change anything.

Grrr, you are running x86_64, try following patch:
http://leaf.dragonflybsd.org/~sephe/0Fh_fid64.diff

Best Regards,
sephe

#7 Updated by herrgard about 3 years ago

Sepherosa Ziehau wrote:
> Grrr, you are running x86_64, try following patch:
> http://leaf.dragonflybsd.org/~sephe/0Fh_fid64.diff

Yey \o/

cpu0: only one P-State is supported
cpu0: min VID mismatch real 18, lim 6
cpu0: min FID mismatch real 2, lim 10

# sysctl hw.acpi.cpu
hw.acpi.cpu.cx_lowest: C1
hw.acpi.cpu.px_dom0.available: 1800 1000
hw.acpi.cpu.px_dom0.members: cpu0(1000)
hw.acpi.cpu.px_dom0.select: 1000
hw.acpi.cpu.px_global: 1800

powerd(8) works now :)

//Max

#8 Updated by herrgard almost 3 years ago

Fixed with 5e06f1b908d047b141d46ed744d8fcf6e26a0787

Also available in: Atom PDF