Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Jul 2008 09:17:18 -0700
From:      "Kevin Oberman" <oberman@es.net>
To:        "Alexandre \"Sunny\" Kovalenko" <gaijin.k@gmail.com>
Cc:        freebsd-acpi@freebsd.org, David Wolfskill <david@catwhisker.org>
Subject:   Re: How/why would dev.cpu.0.freq_levels change??!? 
Message-ID:  <20080701161718.CB0B745047@ptavv.es.net>
In-Reply-To: Your message of "Tue, 01 Jul 2008 08:19:58 EDT." <1214914799.1064.12.camel@RabbitsDen> 

next in thread | previous in thread | raw e-mail | index | archive | help
--==_Exmh_1214929038_54298P
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

> From: "Alexandre \"Sunny\" Kovalenko" <gaijin.k@gmail.com>
> Date: Tue, 01 Jul 2008 08:19:58 -0400
> Sender: owner-freebsd-acpi@freebsd.org
> 
> On Sun, 2008-06-29 at 17:45 -0700, David Wolfskill wrote:
> > On Sun, Jun 29, 2008 at 06:43:36PM -0400, Alexandre Sunny Kovalenko wrote:
> > > I am coming in late in the thread, so if I have misunderstood your
> > > problem, I do apologize.
> > 
> > Not at all; thank you for your suggestions!
> > 
> > > ...
> > > > * As you can see, this can lead to the "interesting" situation that the
> > > >   current CPU frequency is higher than the maximum "available."
> > > >From my (somewhat limited) understanding of the ACPI spec, BIOS can
> > > change _PSS object (one containing available clock frequencies) and
> > > issue notification to the OS to reevaluate said object. There is no
> > > requirement that BIOS change current CPU frequency while doing that.
> > 
> > OK; I confess ignorance on that score: I'm posting to -acpi because I
> > rather suspect that ACPI is (at least) profoundly implicated in what's
> > going on, if not responsible for it.
> > 
> > > You can try to dump your ASL and see if anything there messes up with
> > > _PSS and then issues Notify (xxx.CPU0, 0x80) on the same breath. Killing
> > > that piece of ASL dead should ensure constant CPU frequencies set. ???You
> > > can post your ASL someplace where I can get to it, I just could not
> > > promise that I'll understand it much better than you.
> > 
> > I ran
> > 
> > 	sudo acpidump -dt -o >laptop.i8200.dsdt >laptop.i8200.asl
> > 
> > and placed the results in www.catwhisker.org:~david/public_html/FreeBSD/,
> > so <http://www.catwhisker.org/~david/FreeBSD/laptop.i8200.asl>; and
> > <http://www.catwhisker.org/~david/FreeBSD/laptop.i8200.dsdt>; should
> > work.  I just tried it from my laptop (sick as it is), and the MD5
> > hashes matched.  They are:
> > 
> > g1-60(6.3-S)[6] md5 laptop.i8200.*
> > MD5 (laptop.i8200.asl) = 7c83c27ad30bbd0957f10a5a3ffc90e5
> > MD5 (laptop.i8200.dsdt) = c290ab9be7c97eb7ae98523a5f5a4ddc
> > g1-60(6.3-S)[7] 
> There is definitely some logic to figure out set of frequencies to
> return:
> 
>             Method (_PSS, 0, NotSerialized)
>             {
>                 SX10 ()
>                 SX30 (0x0B)
>                 SX11 ()
>                 Index (PSSX, 0x00, Local0)
>                 Store (SX42 (), Index (DerefOf (Local0), 0x00))
>                 Store (SX42 (), Index (DerefOf (Local0), 0x01))
>                 Store (SX42 (), Index (DerefOf (Local0), 0x02))
>                 Store (SX42 (), Index (DerefOf (Local0), 0x03))
>                 Store (SX40 (), Index (DerefOf (Local0), 0x04))
>                 Store (SX40 (), Index (DerefOf (Local0), 0x05))
>                 Index (PSSX, 0x01, Local1)
>                 Store (SX42 (), Index (DerefOf (Local1), 0x00))
>                 Store (SX42 (), Index (DerefOf (Local1), 0x01))
>                 Store (SX42 (), Index (DerefOf (Local1), 0x02))
>                 Store (SX42 (), Index (DerefOf (Local1), 0x03))
>                 Store (SX40 (), Index (DerefOf (Local1), 0x04))
>                 Store (SX40 (), Index (DerefOf (Local1), 0x05))
>                 SX12 ()
>                 Return (PSSX)
>             }
> 
> 
> and there is definitely a condition when OS is asked to reevaluate the
> list:
> 
>     Method (SMIE, 0, NotSerialized)
>     {
>         Store (SMI (0x96, 0x00), Local0)
>         If (And (Local0, 0x01))
>         {
>             Notify (\_TZ.THM, 0x80)
>         }
> 
>         If (And (Local0, 0x02))
>         {
>             Notify (\_SB.PCI0.AGP.VID, 0x80)
>         }
> 
>         If (And (Local0, 0x04))
>         {
>             Notify (\_SB.BAT0, 0x81)
>             Notify (\_SB.BAT1, 0x81)
>         }
> 
>         If (And (Local0, 0x08))
>         {
>             Notify (\_PR.CPU0, 0x80)   <=============================
>         }
>     }
> 
> What is somewhat puzzling, is that _PSS above seems to return two
> frequencies only, and your freq_levels output show more than that. Once
> you get it back from the repair shop, and, provided you still feel
> adventurous, we can try to sprinkle some prints around _PSS read and see
> what gives. Let me know if and when you are interested.
> 
> However, given what I am looking at, I am inclined to guess that a)
> there is the reason behind the _PSS change. b) the cpufreq driver you
> are using disagrees with it.

There are only two "real" frequencies on this CPU. Looks like a P4
without EST. In any case, the other "frequencies" are created by P4TCC
which performs the same function as throttling, but in a different
way. P4TCC works a bit better than throttling, but neither is a big
win. The Speedstep one is the big winner, here.

P4TCC will create 8 freq values for each "Real" frequency for a total of
16 frequencies. If the BIOS disabled the faster speed, there should only
be 8 available.
-- 
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman@es.net			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751

--==_Exmh_1214929038_54298P
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)
Comment: Exmh version 2.5 06/03/2002

iD8DBQFIaliOkn3rs5h7N1ERAvLKAKChqTf5bfeQItIma1nBzCL7IwQRzgCfWffx
sEf+sbtWufaXVsiFwlXKYHE=
=ur1V
-----END PGP SIGNATURE-----

--==_Exmh_1214929038_54298P--



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