Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Sep 2011 15:01:44 -0400
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        freebsd-current@FreeBSD.org
Cc:        Arnaud Lacombe <lacombar@gmail.com>
Subject:   Re: 9.0-BETA2 do not support SpeedStep on E5420
Message-ID:  <201109161501.48048.jkim@FreeBSD.org>
In-Reply-To: <CACqU3MW1Ge1AnQuF4uuRDCJzB-OcLGSwmFKYck_q-xy%2BRkzHNw@mail.gmail.com>
References:  <CACqU3MWNgq4RkBu7-eUON20CWdfO38KbM-8hR0AnFV-mn_=-7A@mail.gmail.com> <CACqU3MW1Ge1AnQuF4uuRDCJzB-OcLGSwmFKYck_q-xy%2BRkzHNw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 15 September 2011 05:19 pm, Arnaud Lacombe wrote:
> Hi,
>
> On Thu, Sep 15, 2011 at 12:20 PM, Arnaud Lacombe 
<lacombar@gmail.com> wrote:
> > Hi,
> >
> > From today's -CURRENT:
> >
> > Copyright (c) 1992-2011 The FreeBSD Project.
> > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992,
> > 1993, 1994 � � � �The Regents of the University of California.
> > All rights reserved. FreeBSD is a registered trademark of The
> > FreeBSD Foundation. FreeBSD 9.0-BETA2 #17 r225560+be1f8b9: Thu
> > Sep 15 12:05:41 EDT 2011 �
> > �al@shai-hulud:/data/src/freebsd/obj/master/i386.i386/data/src/fr
> >eebsd/src/sys/GENERIC i386
> > CPU: Intel(R) Xeon(R) CPU � � � � � E5420 �@ 2.50GHz (2493.80-MHz
> > 686-class CPU) �Origin = "GenuineIntel" �Id = 0x1067a �Family = 6
> > �Model = 17 �Stepping = 10
> > �Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,
> >MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,
> >HTT,TM,PBE>
> > �Features2=0x40ce3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX1
> >6,xTPR,PDCM,DCA,SSE4.1,XSAVE> �AMD Features=0x20100000<NX,LM>
> > �AMD Features2=0x1<LAHF>
> > �TSC: P-state invariant, performance statistics
> > real memory �= 6442450944 (6144 MB)
> > avail memory = 3677458432 (3507 MB)
> > Event timer "LAPIC" quality 400
> > ACPI APIC Table: <100509 APIC1714>
> > FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
> > FreeBSD/SMP: 2 package(s) x 4 core(s)
> > �cpu0 (BSP): APIC ID: �0
> > �cpu1 (AP): APIC ID: �1
> > �cpu2 (AP): APIC ID: �2
> > �cpu3 (AP): APIC ID: �3
> > �cpu4 (AP): APIC ID: �4
> > �cpu5 (AP): APIC ID: �5
> > �cpu6 (AP): APIC ID: �6
> > �cpu7 (AP): APIC ID: �7
> > [...]
> > est0: failed to enable SpeedStep
> > p4tcc0: <CPU Frequency Thermal Control> on cpu0
> > est1: failed to enable SpeedStep
> > p4tcc1: <CPU Frequency Thermal Control> on cpu1
> > est2: failed to enable SpeedStep
> > p4tcc2: <CPU Frequency Thermal Control> on cpu2
> > est3: failed to enable SpeedStep
> > p4tcc3: <CPU Frequency Thermal Control> on cpu3
> > est4: failed to enable SpeedStep
> > p4tcc4: <CPU Frequency Thermal Control> on cpu4
> > est5: failed to enable SpeedStep
> > p4tcc5: <CPU Frequency Thermal Control> on cpu5
> > est6: failed to enable SpeedStep
> > p4tcc6: <CPU Frequency Thermal Control> on cpu6
> > est7: failed to enable SpeedStep
> > p4tcc7: <CPU Frequency Thermal Control> on cpu7
>
> different issue, same config, still est(4) related, bot on a Q9650:
>
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 9.0-BETA2 #16 r225462+e068e24-dirty: Sat Sep 10 14:50:17
> EDT 2011
> al@shai-hulud:/data/src/freebsd/obj/master/i386.i386/data/src/freeb
>sd/src/sys/GENERIC i386
> CPU: Pentium III/Pentium III Xeon/Celeron (2666.72-MHz 686-class
> CPU) Origin = "GenuineIntel"  Id = 0x1067a  Family = 6  Model = 17 
> Stepping = 10
> Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTR
>R,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,T
>M,PBE>
> Features2=0x408e3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX
>16,xTPR,PDCM,SSE4.1,XSAVE> AMD Features=0x20100000<NX,LM>
>   AMD Features2=0x1<LAHF>
>   TSC: P-state invariant, performance statistics
> real memory  = 2147483648 (2048 MB)
> avail memory = 2084757504 (1988 MB)
> Event timer "LAPIC" quality 400
> ACPI APIC Table: <IntelR AWRDACPI>
> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> FreeBSD/SMP: 1 package(s) x 4 core(s)
>  cpu0 (BSP): APIC ID:  0
>  cpu1 (AP): APIC ID:  1
>  cpu2 (AP): APIC ID:  2
>  cpu3 (AP): APIC ID:  3
> [...]
> est0: <Enhanced SpeedStep Frequency Control> on cpu0
> est: CPU supports Enhanced Speedstep, but is not recognized.
> est: cpu_vendor GenuineIntel, msr 616082506000825
> device_attach: est0 attach returned 6
> p4tcc0: <CPU Frequency Thermal Control> on cpu0
> est1: <Enhanced SpeedStep Frequency Control> on cpu1
> est: CPU supports Enhanced Speedstep, but is not recognized.
> est: cpu_vendor GenuineIntel, msr 616082506000825
> device_attach: est1 attach returned 6
> p4tcc1: <CPU Frequency Thermal Control> on cpu1
> est2: <Enhanced SpeedStep Frequency Control> on cpu2
> est: CPU supports Enhanced Speedstep, but is not recognized.
> est: cpu_vendor GenuineIntel, msr 616082506000825
> device_attach: est2 attach returned 6
> p4tcc2: <CPU Frequency Thermal Control> on cpu2
> est3: <Enhanced SpeedStep Frequency Control> on cpu3
> est: CPU supports Enhanced Speedstep, but is not recognized.
> est: cpu_vendor GenuineIntel, msr 616082506000825
> device_attach: est3 attach returned 6
> p4tcc3: <CPU Frequency Thermal Control> on cpu3

est depends on acpi_perf to get frequency/voltage information to 
get/set MSRs.  Your BIOS does not export _PSS mothods and that's why 
it's failing.  If you can find SSDT dump with _PSS methods for the 
*exact* CPU model from "somewhere", you can insert it into your DSDT 
and override.

There are many possible causes.  Some BIOS do not care about 
workstation/server class CPUs.  Some BIOS only exports _PSS methods 
when it "thinks" the OS supports it.  Some (broken) BIOS dynamically 
constructs/loads/unloads _PSS methods during cold boot to limit 
boot-time frequency (usually for mobile processors), then acpi_perf 
misses it.  Some times calibrated frequency at boot-time is too wild 
and it does not match any frequency from probed _PSS.  Newer models 
are more complicated because of dynamic FSB switching, Turbo Boost, 
etc.  It goes on and on...

Intel did not publish vital information to support any CPUs beyond 
Pentium M family but you may find some clues from Intel BITS source.

http://biosbits.org/

Also, Linux ACPI validation test may help, too.

http://www.lesswatts.org/projects/acpi/validation.php

Some time ago, I have written an ugly patch to support newer 
processors without _PSS:

http://people.freebsd.org/~jkim/est-20110608.diff

It worked for my Xeon processors but it may damage your CPU severely, 
cause fire, etc, etc...  Now you're warned. ;-)

Note this patch will never be committed, at least in current form, 
because it has full of guess work from me.

>  - Arnaud
>
> > It feels strange that the latest FreeBSD do not support est(4) on
> > a 3 years old CPU...

Yeah, tell it to the CPU/BIOS/motherboard vendors. :-(

Jung-uk Kim



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