Is the C3 possible with SMP?

martinko gamato at users.sf.net
Thu Nov 27 14:32:06 PST 2008


Ian Smith wrote:
> On Fri, 21 Nov 2008, Kevin Oberman wrote:
>  > > From: martinko <gamato at users.sf.net>
>  > > 
[...]
>  > > 
>  > > Hi,
>  > > 
>  > > My laptop reports C1 state only:
>  > > 
>  > > $ sysctl -a | grep cx_
>  > > hw.acpi.cpu.cx_lowest: C1
>  > > dev.cpu.0.cx_supported: C1/1
>  > > dev.cpu.0.cx_lowest: C1
>  > > dev.cpu.0.cx_usage: 100.00%
>  > > 
>  > > But this is Pentium-M and I remember it could use C2 and C3 back with 
>  > > 5.x kernel and I'm sure I had USB as I have now.
>  > > 
>  > > Do you have any idea why I don't have C2/C3 states available anymore ??
>  > 
>  > Under 7-Stable, my Pentium-M system (ThinkPad T43) shows C1, C2, and
>  > C3. Of course, it's not an SMP.
>  > dev.cpu.0.cx_supported: C1/1 C2/1 C3/85
>  > dev.cpu.0.cx_lowest: C1
>  > dev.cpu.0.cx_usage: 100.00% 0.00% 0.00%
>  > 
>  > cx_supported has nothing to do with the value of cx_lowest. It should
>  > simply be what the CPU reports back vi ACPI as to the C states supported
>  > on the platform.
> 
> Well, except that cx_supported shows the possible values for cx_lowest; 
> ie you can only select a value for cx_lowest that's in cx_supported .. 
> so it does seem odd that martinko's cx_supported has been limited to C1?
> 
> Whether the system ever actually uses the cx_lowest value you select, 
> other than C1, is another matter of course.  My T23 (P3-M, 7.0-R) allows 
> selection of C3, but only ever uses it if the machine was booted up on 
> battery(!) but that might be a BIOS/EC bug that upgrading these may fix.
> 
> cheers, Ian
> 

Well, booting with or without battery does make a difference, strangely:

$ sysctl dev.cpu
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU1
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 525
dev.cpu.0.freq_levels: 2000/-1 1800/-1 1600/-1 1400/-1 1225/-1 1200/-1 
1050/-1 1
000/-1 875/-1 800/-1 700/-1 600/-1 525/-1 450/-1 375/-1 300/-1 225/-1 
150/-1 75/
-1
dev.cpu.0.cx_supported: C1/1 C2/1 C3/2
dev.cpu.0.cx_lowest: C3
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00%

This was suggested to me by Henry Hu:

Henry Hu wrote:
 > You may try to boot with battery.
 > If I boot with AC, there are only C1 and C2. But if I boot with
 > battery, there is C3.
 > I found that the line to recheck cx states has been commented in the
 > source code. So cx states keep the same since system startup.
 >
 > Cheers,
 >
 > Henry

Cx states other than C1 are never used, unfortunately.  Both C2 and C3 
were used back with 5.something (I started with 5.3).  I guess USB might 
be the culprit here.  Anyway, it behaves strangely, at best. :(

Cheers,

Martin

PS: Also, AFAIR C3 was not 2 but something like 100 back in times of 5.x 
when it worked on this laptop correctly.



More information about the freebsd-mobile mailing list