Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Mar 2008 14:41:16 -0500
From:      "Yousif Hassan" <yousif@alumni.jmu.edu>
To:        "Jan-Olof Lindqvist" <jo.lindqvist@gmail.com>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: Fujitsu P8010: est: CPU supports Enhanced Speedstep, but is not recognized
Message-ID:  <3C1C2FE1ADB147B7AE25E0CEA214A23D@alderaan>
In-Reply-To: <47C849A8.10809@gmail.com>
References:  <200802281645.00286.mistry.7@osu.edu> <47C73E8E.40706@gmail.com> <A48BAC083342485094C683FBE08908AE@alderaan> <200802291045.39977.mistry.7@osu.edu> <863014ECF11048B78C23D1D31DCAFF40@alderaan> <47C849A8.10809@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Jan-Olof Lindqvist" wrote:
> Even if it does attach the est-driver, I don't think it receives the
> correct voltage to the processor. For example on my laptop I have been
> running FreeBSD i386 and now amd64 with the Core 2 duo T7700, the fan
> runs constantly and it feels hot where the processor is located. This is
> not the case when running for ex Linux.

There are probably two issues we're talking about here.

The first issue is the one you mentioned above, which is that the voltage 
information is not accurate for Core 2 processors.  This is probably true. 
I looked in the datasheets, it looks like Core 2s have more than one VID 
with a different setting in each.  I suspect this means, as Nate Lawson has 
commented in the source, that the frequency/voltage table method won't work. 
So unfortunately I doubt it's as simple as adding some new tables.  I don't 
know how Linux deals with this, but I downloaded the Linux kernel and will 
have a look.  This probably explains why the frequencies available to my 
Core 2 (T7500) are different on FreeBSD.  In this case it must be using the 
acpi_perf settings.  Those do work pretty well in terms of keeping my 
temperature low, so I wonder what is happening in your case.  Did you 
experience the heat issues even with the i386 kernel, or just amd64?

The second issue is why est won't attach at all on amd64, like Anish's issue 
(and mine).

Looks like the logic is something like this:
if (acpi_perf is actively managing things)
  use it;
else  //try to enable est
{
  if (there's a match in est tables)
    use it;
  else //try to use acpi_perf "read-only" settings
  {
    if (acpi_perf is attached)
      good, read frequencies from it;
    else
      refuse to attach est;
  }
}

It would seem that on both i386 and amd64, the table method will fail, since 
the info is not there.  So that can't be the reason for a difference.  This 
means est will resort to querying acpi_perf.  acpi_perf, if it attaches in 
"silent" mode, will provide the frequency info to the est driver, which est 
then uses.  So the question is - why does this fallback method not work for 
amd64?  I need to play around with it and use some printfs / debugger to 
verify the logic.  I might be missing something.

> Maybe we should PR this?

Probably, but more info would be helpful first.

--Yousif 




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