Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 May 2006 16:56:48 +0000
From:      Ales <ales.rom@kabelnet.net>
To:        ducrot@poupinou.org,  freebsd-acpi@freebsd.org
Subject:   Re: powerd on Gericom Webgine XL not running quite well
Message-ID:  <4458E0D0.5020308@kabelnet.net>
In-Reply-To: <4458B194.7070407@kabelnet.net>
References:  <4458B194.7070407@kabelnet.net>

next in thread | previous in thread | raw e-mail | index | archive | help

>>
>> The file is here: http://www.p-rom.si/Gericom_Webgine_XL.asl
>>     
>
> Thanks.  As I supposed, there are duplicate entries for the max p-state:
>
> Scope (\_PR)
> {
>     Processor (CPU1, 0x01, 0x00000810, 0x06)
>     {
>     ...
>         Name (_PSS, Package (0x0A)
>         {
>             Package (0x06)
>             {
>                 0x000004B0,
>                 0x000088BC,
>                 0x0000007D,
>                 0x0000007D,
>                 0x009C416C,
>                 0x0000016C
>             },
>
>             Package (0x06)
>             {
>                 0x000004B0,
>                 0x000088BC,
>                 0x0000007D,
>                 0x0000007D,
>                 0x009C416C,
>                 0x0000016C
>             },
>
>             Package (0x06)
>             {
>                 0x000004B0,
>                 0x000088BC,
>                 0x0000007D,
>                 0x0000007D,
>                 0x009C416C,
>                 0x0000016C
>             },
>
>        This package is duplicated 5 times and correspond to
>        the max one.
>
>         ...
>         ...
>         }
>
> our acpi_perf driver does not handle this situation.  I think
> this patch (can not compile test, I don't have a FreeBSD
> handy ATM) should fix your issue (minus stupid mistake I may
> introduce).
>
>   
>> As I said in one of my previus messages:
>> If I change POWERNOW_MAX_STATES in powernow.c from 16 to 7 (I belive it 
>> is the number of states on my proc) everything works fine!!! I know it 
>> is stupid solution, but I do not know anything about C/C++ programming. 
>> Sorry.
>>     
>
> The method CPUFREQ_DRV_SETTINGS() from acpi_perf give
> 10 p-states, not 7, therefore it failed, and pn_decode_acpi()
> fail.  Legacy bios tables are used instead of those
> given by ACPI via pn_decode_pst() which return only 6
> p-states.
>
> You can see the power consuption for each states is "-1"
> in that case because I dont know how to compute them.
>
>   
>> dev.powernow.0.freq_settings: 1197/-1  1064/-1 997/-1 931/-1 864/-1 798/-1
>>
>> Another thing. I belive that 1 frequency here is missing. 
>> (8,5x133MHz=1133MHz) It should be there because we have FSB=133, multi=6 
>> to 9 in 0.5 step.
>>     
>
> Aparently the bios writer tell you 8.5 multiplier is not supported.
> You should always trust the bios writer (ahem) :)
>
>
> --- src/sys/dev/acpica/acpi_perf.c~	2006-05-03 14:49:35.000000000 +0200
> +++ src/sys/dev/acpica/acpi_perf.c	2006-05-03 14:50:37.000000000 +0200
> @@ -299,6 +299,12 @@ acpi_perf_evaluate(device_t dev)
>  		    sc->px_states[count].core_freq >= 0xffff)
>  			continue;
>  
> +		/* Check for duplicate entries */
> +		if (count > 0 &&
> +		    sc->px_states[count - 1].core_freq ==
> +			sc->px_states[count].core_freq)
> +			continue;
> +
>  		count++;
>  	}
>  	sc->px_count = count;
>
>   
It compiles and runs like you said.

dev.powernow.0.%desc: PowerNow! K7
dev.powernow.0.%driver: powernow
dev.powernow.0.%parent: cpu0
dev.powernow.0.freq_settings: 1197/35004  1064/29004 997/25291 931/23595 864/21910 798/20224

We have freq an power consuption for every state now.

Thank you. Great, great support.

Ales Rom





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4458E0D0.5020308>