Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Aug 2002 12:58:31 -0300
From:      Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        freebsd-hackers@FreeBSD.org, Michael Nottebrock <michaelnottebrock@gmx.net>, Gary Jennejohn <garyj@jennejohn.org>, Aaron Seelyes <aseelye@urx.com>
Subject:   Re: Cooling idle Athlon/Duron processors? (vcool)
Message-ID:  <20020807155853.38997.qmail@exxodus.fedaykin.here>
In-Reply-To: <3D50B6C1.C247FF5B@mindspring.com>
References:  <20020807050725.96740.qmail@exxodus.fedaykin.here> <3D50B6C1.C247FF5B@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 06, 2002 at 10:56:59PM -0700, Terry Lambert wrote:
> Mario Sergio Fujikawa Ferreira wrote:
> >         I know that this surfaces every once in a while. However,
> > I thought I could try to add more information. I did a little digging
> > on the issue.
> 
> Every time this comes up I ask:
> 
> o	Have you got a software method of detecting use of a half
> 	frequency multiplier yet?

	I could not find an answer for that. What I found was that

----- (BEGIN - http://www.cpuidle.de)

14 Processors with Half-Frequency Multipliers May Hang Upon Wake-up
from Disconnect Products Affected: A4, A5, A6, A7, A9.

Normal Specified Operation: The processor should reconnect to the
system bus upon wake-up after a disconnect while in the C2 and C3
ACPI low-power states.

Non-conformance: The processor uses a special circuit to wake up
from a low-power state and reconnect to the system bus when the
nominal operating frequency is generated with a half- frequency
multiplier. This circuit is rarely observed to glitch when coming
out of the C2 and C3 low-power states.

Potential Effect on System: The system will hang.

----- (END - http://www.cpuidle.de)

	Information on some of these processors

- AMD Athlon Processor Model 4 Revision Guide
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23614.pdf

- AMD Athlon Processor Model 6 Revision Guide
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24332.pdf

- AMD Duron Processor Model 7 Data Sheet
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24310.pdf

- k7cpuid.book
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/20734.pdf

	Best short term solution, warn the user that he has one of the
possibly affected processors. Therefore, user would need a -FORCE option to
still proceed with cooling attempt. OR, make enabling optional.

> o	Have you got a software method of diabling the ACPI C2
> 	and C3 low-power states?

	It would seem that there is an old ACPI Linux driver
that "could" do this. I am unable to verify

	"Linux ACPI-HOWTO
	 Ariel Glenn, ariel@columbia.edu
	 v 0.1e, 22 January 2001

- How to disable entering either C2 or C3 (at boot time)
http://www.columbia.edu/~ariel/acpi/acpi_howto.txt

  no-c2   Before initialization, some global variables are set so that the
  no-c3   processor power states C2 and C3 states cannot be entered. During
          normal initialization, C2 (cpu idle) and C3 (cpu idle, caches
          ignore snoops) states are both enabled. This step will be skipped
          if these options are enabled. Set the no-c2 option to disable
          entering C2; set no-c3 to disable entering C3. (off by default)

	Well, I believe that he did add some instrumentation
to the ACPI code to disable activation of the states. This might
be undesirable for your reasons mentioned below.

	Nevertheless, same short term solution as before, have this
as an optional thing.

> o	Have you figured out how to make use of C2 and C3 vs.
> 	disconnect, so that this can be done at the user option?

	Well, I have been mentioning "optional thing". What I mean
is that this can be done from user land. No kernel modules. At
least that is how Linux does it. Once again, I am neither sure this
is possible under FreeBSD nor do I say that it REALLY works under
Linux since I am unable to verify it.

- Linux simplified version of VCool
http://vcool.occludo.net/lvcool.tar.gz

	lvcool is a Linux command line utility that will WITHOUT
any specific kernel support modify both NorthBridge and SouthBridge
registers to enable "Bus Disconnect". It follows the steps I listed
in my last email. Therefore, it is completely optional since it is
command line only.
	Of course, it requires increased privileges to do its deed
so it has to be run as root.


> o	Can you *reliably* detect the AMD Athlon Model 4 PLL via
> 	software?
> 
> o	Have you been able to get AMD to release the contents of
> 	their proprietary REvision documents #23614 and #24478 so
> 	that the CLK_CTRL MSR reconnect timining can implement the
> 	necessary workaround in software?
> 
> o	Is there a way to detect, in software, the variability of
> 	the power supply, since the thing can hang on wakeup with
> 	the 35-55W delta increase in power consumnption coming out
> 	of the sleep?

	These last 3 are not possible to answer at this current
time. However, I would stress both command line and optional.

> Then I point out that ACPI is hard enough as it is, without trying
> t disable only parts of it so that you can do a weird hack on the
> Northbridge to support disconnect.

	This I will not disagree. I am most happy at the hard work
of ACPI developers. I am not trying to get them to side track from
main development. However, this might be possible to test outside
of the kernel code with a command line utility.

> Then I point them at:
> 
> 	http://vcool.occludo.net/vc_freezes.html
> 
> So that it's obvious that it's the author of "vcool" who has
> identified these problems, and not just me.

	If it is all optional and there is A BIG WARNING: AT YOUR
OWN RISK... YOUR SYSTEM MIGHT HANG.... DON'T ANNOY US ABOUT IT...
	That's the beauty of having a command line utility. Everything
can be changed at run time.

> Feel free to write a kernel module and/or provide patches for doing
> "vcool" for FreeBSD.  Just as long as it's off by default, until you
> resolve the bullet pointed questions, above.

	Unfortunaly, I am no kernel programmer of any caliber. What
I did was gather as much information as possible so that I could
help kernel programmers do it. However, when I meant kernel
programmers, I really meant driver programmers.

	What seems to be needed is someone who has the knowledge
on how to:

	1) probe the motherboard for chipsets (NorthBridge
	and SouthBridge)

	2) program them accordingly

	Well, I provided some info on what needs to be done on my
last email. Also, lvcool seems like a good example since it seems
to be working under Linux.
	The fact that it makes some systems unstable does not
detract value from this solution. You try it, it works for you,
you keep it. It doesn't, don't enable at next boot.
	I have been lucky to verify that it works on both
ASUS A7M266, ASUS A7V133 and ECS K7S5A with different combinations
of Duron Morgan, Athlon TBird and Athlon XPs. I know others
have not as much but that is not a problem if they just do not
enable the utility again.

	Regards,

-- 
Mario S F Ferreira - DF - Brazil - "I guess this is a signature."
Computer Science Undergraduate | FreeBSD Committer | CS Developer
flames to beloved devnull@someotherworldbeloworabove.org
feature, n: a documented bug | bug, n: an undocumented feature

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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