Will 'PowerNow' Cause Trouble in Linux?
Vandermar asks: "AMD's 'PowerNow' promises to vary clock speed in 50mhz increments on the fly similar to Crusoe. If I remember correctly, Linus had to make changes to the Linux kernel to keep it from freaking out when the clock speed changed. Will the variable clock speed of AMD's new mobile chips require changes to the kernel (or will PowerNow need to be disabled)? How was the kernel modified to allow it to run on Transmeta chips?"
Can someone with insight do some Karma whoring and get some references to this topic?
I don't know about the Transmeta CPUs, but it seems that AMD's embedded processors do play nice with Linux.
Details are on the AMD site.
they're always "innovating" by putting on little features to their CPUs that end up requiring either a driver upgrade or an entire operating system patch. When Intel gets their act together, I might consider getting a new system. Of course, that might take about three years...
"Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
How is this different from Intel's Speed Step that slows a chip down from 650 to 500?
linus didnt have to make changes for the transmeta CPUs....the clock changes are transparent to the OS. As AMDs will probably be the same ...Intels SpeedStep definitely is, since my machine varies its clock and the OS (Linux/FreeBSD) doesnt notice.
There's currently code in the kernel to handle Speedstep changes. Normally, CPU speed changes won't affect anything, as users of older laptops will know. However, as the kernel uses timing loops for some things, if the speed of your CPU changes you might experience problems when changing CPU speed, since the timing loops won't be the right duration.
That's why the speedstep changes are in there, to recalibrate the loops when the CPU changes speed. If the new CPUs use a different method to notify speed changes (or whatever, I'm not precisely sure how it works), another case will probably have to be added but it should be minimal. And running Linux before such changes are made will probably be pretty safe, you'll just have a potential for problems.
(I think the speedstep changes are in all recent 2.2 kernels, but I don't think they're user-visible in any way.)
SpeedStep: I do not think that chip does what you think it does. And it doesn't ship with Iocaine powder, either.
:)
SpeedStep runs at the lower speed WHENEVER you are on battery. (at least according to Dell) It is not dependent on the processes going on. It only runs at the higher speed when plugged in. imo, this is idiotic. But I can see how it would reduce OS problems.
Transmeta's processor does a much swifter thing; it changes dynamically based roughly on usage... so when you aren't using it, it just slows down.
This is better, but I'm not sure how much, than those programs which simply send the least-power-using instruction for a cycle to reduce heat load. Since heat load = power input (because all is eventually heat) such a program should significantly reduce your power usage, BUT it depends on the OS working right... I suspect that actually slowing down the number of operations is much more efficient than the lowest op, because I bet there's a bunch of overhead even on the lowest-power operation. So Transmeta's is definitely better.
I haven't researched PowerNow. But I bet it isn't stupid like SpeedStep. So I'm betting on a Transmeta style approach, where it dynamically changes it based on load. (Of course, the response time and load analysis algorithm are going to be important, and you should really set up all your backup maintenance progs to only run on AC power... along with RC5
So that's why it would screw with Linux, and SpeedStep won't (fewer changes... possibly even only on boot...) However, I can't imagine a technique which would be MORE disruptive than transmeta's (except possibly for changing faster...) so I'd imagine that if Transmeta works it'd be fine.
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
Alan Cox wrote:
> > Correct. Transmeta Longrun and Intel Speedstep do change the clock
> > frequency, though; however, at least Transmeta will still present a
> > constant-frequency TSC to the RDTSC instruction. Don't know about
> > Intel.
>
> I believe Intel also keeps constant TSC.
>
> > (Now, some broken Cyrix chips would lose or not increment the TSC when
> > throttled.)
>
> They stop the TSC when the CPU is suspended completely. Thats actually very
> nice behaviour on a power sensitive device.
2.2.16 and beyond support SpeedStep, et al.
Great troll, though.
- A.P.
--
* CmdrTaco is an idiot.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
I read in some (p)reviews that PowerNow can be disabled through the included software... Whether that means the feature is hardware-disabled or that it's software controlled and the software itself is disabled, I can't comment on.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
SpeedStep runs at the lower speed WHENEVER you are on battery. (at least according to Dell) It is not dependent on the processes going on. It only runs at the higher speed when plugged in. imo, this is idiotic. But I can see how it would reduce OS problems.
SpeedStep is configurable. From what I understand of SpeedStep, software has to initate the change. With Windows, a control panel applet watches the power source with APM, and when it changes, it has the option of changing the speed. With the Windows applet, it allows you to configure SpeedStep to run at full speed all the time, only when on AC power, or never. Likewise, it lets you configure the lower speed all the time, only on battery, or never.
The system will also switch on-the-fly. While configured to run slow on battery and fast on AC, use a program to measure CPU speed on both and it will change as the power source changes.
Transmeta's processor does a much swifter thing; it changes dynamically based roughly on usage... so when you aren't using it, it just slows down.
This is better than SpeedStep, but the Intel CPUs do have a nice feature called the HLT instruction, which actually halts the CPU until an external interrupt occurs. If Windows 9x would actually use it, laptop batteries would last ALOT longer.
This is better, but I'm not sure how much, than those programs which simply send the least-power-using instruction for a cycle to reduce heat load. [snip] I suspect that actually slowing down the number of operations is much more efficient than the lowest op, because I bet there's a bunch of overhead even on the lowest-power operation. So Transmeta's is definitely better.
This is better when used unaided with Windows 9x/Me. But...
Like I mentioned above, the HLT instruction will actually stop ALL instruction processing within the CPU until an external interrupt occurs, ie. the timer interrupt fires so the OS can schedule the next process. So, once the HLT instruction is issued, the CPU remains halted for the remainder of the processes timeslice. HLT is used within the idle process of Linux, the BSDs, and Win NT/2000, so they all benefit. For Win9x, there are programs like Rain, that will consume all of the idle CPU time and issue HLT instructions as if it was the idle process.
If Transmeta's chip can halt itself when it detects an idle loop, then cool. It should work quite a bit better with Win9x than other x86 CPUs.
If I had any moderator points (which I wouldn't 'cause it was a reply to my post, so obviously I posted) I'd mod you up.
Do you know whether Transmeta has or doesn't have HLT? While I didn't think of it in the two minutes I was writing that post, it sounds like something Transmeta's "next generation" powersaving they claim to have would probably contain... and I'd guess that PowerNow would have it, too... but I could certainly be wrong.
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
Do you know whether Transmeta has or doesn't have HLT? While I didn't think of it in the two minutes I was writing that post, it sounds like something Transmeta's "next generation" powersaving they claim to have would probably contain... and I'd guess that PowerNow would have it, too... but I could certainly be wrong.
:)
I would be surprised if it didn't contain HLT. HLT is part of the x86 instruction set, and all the other major CPU manufacturers have it. Besides, Linux uses it, so it must be in there.