<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Tiago Marques</b> <span dir="ltr"><<a href="mailto:tiagomnm@gmail.com">tiagomnm@gmail.com</a>></span><br>Date: Sat, May 8, 2010 at 12:17 PM<br>

Subject: Re: XO 1.5 frequency scaling<br>To: "Richard A. Smith" <<a href="mailto:richard@laptop.org">richard@laptop.org</a>><br><br><br>Hi Richard,<br><br><div class="gmail_quote"><div class="im">On Wed, May 5, 2010 at 12:28 AM, Richard A. Smith <span dir="ltr"><<a href="mailto:richard@laptop.org" target="_blank">richard@laptop.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>On 05/04/2010 07:01 PM, Tiago Marques wrote:<br>
<br>
> Let me see if I understand what you said. I understand how it works on<br>
> desktop and regular laptops. You load the module for the specific power<br>
> saving feature and either a kernel module to do the job or the userspace<br>
> module which then allows a daemon to do the frequency scaling.<br>
> Now the XO 1.5, AFAIK, isn't doing it or powerd is doing it(or openfw).<br>
> I tried loading the C7 power saver module but it can't find the device.<br>
> Is it already being taken and should I not worry with frequency scaling<br>
> although /proc/cpuinfo always shows 1000MHz?<br>
<br>
</div>The module is not enabled in the kernel build and in our case appears to<br>
only offer saving in very limited cases.  Yes, you could cap your max<br>
frequency and max power draw but in general you end up using more<br>
power*time that way because you keep all the other components that don't<br>
have sort of power scaling up longer then they would have been because<br>
it takes longer to do the task.  If you decrease the power draw 2x but<br>
then extend the time 2x you have gained nothing.<br>
<br></blockquote><div><br></div></div><div>Not my experience, but I'm desktop biased I guess. I was thinking that you could further lower the core voltage on the XO and get something like 50% the clock with 25% or less power. But, as you describe below, if VIA managed such an agressive power gating, it's the way to go.</div>

<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Feel free to experiment though.  The latest versions of powerd have<br>
power logging built in and if you want a more specific measurement my<br>
power logging scripts should be useful.<br>
<br>
IIRC I had to hack on the driver a bit to make it work.  The following<br>
is a summary email I posted from when I worked on it.<br>
<br>
Notes:<br>
- Ignore the comment about C5. Our CPU does not support C5.<br>
<br>
- Ignore the comment about being scared to burn up the CPU.  We now have<br>
thermal throttling enabled and have tested it extensively. Unless you<br>
turn that off you should not be able to burn up the CPU.<br></blockquote><div><br></div></div><div>This is on olpc-powerd or the VIA C7 powersaver driver? I couldn't find anything related to over/underclocking in powerd.</div>


<div>Did I miss some firmware or kernel update, as I can't load the c7 powersaver kernel module in a kernel I built myself.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<br>
======================<br>
I spent the day/night today working on getting our C states and P states<br>
enabled.<br>
<br>
The good news is that I got C4,C5 and frequency/voltage scaling (P<br>
states) working.<br>
<br>
The bad news is that C5 causes memory corruption and P states don't help<br>
much.<br>
<br>
Enabling C4 seems to save us about 170mW in idle.<br></blockquote><div><br></div></div><div>Any measurement on how low it goes in C4?</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<br>
C5 should save us a bit more but with it enabled the system won't boot.<br>
It gets all sorts of funky ext4 errors.  C5 turns off the L2 cache and<br>
the docs say you should flush before entering.  I suspect thats not<br>
happening.<br>
<br>
P states currently don't seem to save us enough to be measured.  One<br>
reason is that our core voltage is set by default to be very close to<br>
the minimum.  Its at .796V and the minimum is .7V with scaling enabled<br>
(+ code hack) the minimum setting drops Vcore to .73V. Its supposed to<br>
go to .7 but the volt meter says otherwise.  60mV diff doesn't offer a<br>
whole lot of savings.<br></blockquote><div><br></div></div><div>I see, I thought they could drop it even further.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<br>
The CPU frequency slides between 400Mhz and 1GHz and you would think<br>
that it would make a large difference but the meter says otherwise.  How<br>
can that be you ask?  The answer is because Linux issues a hlt when<br>
idle.  If you run the test under OFW then you can create up to 1.5W of<br>
power difference by sliding the freq from min to max [1] and holding the<br>
Vcore constant.  But in idle not so much.  The processor already does a<br>
very good job of gating the clocks.<br>
<br></blockquote><div><br></div></div><div>Nice, kudos for VIA.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So this brings us back to what we already knew.  The big money on power<br>
savings is in our special sauce idle suspend.<br>
<br>
[1] Turns out you can overclock the processor.  Via lists the max<br>
multiplier at 16x FSB (100Mhz) which is 1.6Ghz even though its listed as<br>
a max of 1Ghz. However if you continue to put values into the multiplier<br>
register the power draw continues to increase.  I stopped when the<br>
system draw had hit 9W cause the XO on the power meter does not have a<br>
heat spreader and I didn't want to take the chance of burning it up.<br>
=================<br></blockquote><div><br></div></div><div>The heatspreader I can hack with a heatpipe and some coolers, I'm going to do it anyway since it is already going to 85ºC in load. The speed is of some use to me most of the time, I'm just worried that the VRM can't handle the extra current.</div>


<div><br></div><div>Best regards,</div><div>Tiago</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<font color="#888888"><br>
--<div class="im"><br>
Richard A. Smith  <<a href="mailto:richard@laptop.org" target="_blank">richard@laptop.org</a>><br>
One Laptop per Child<br>
_______________________________________________<br>
Devel mailing list<br>
<a href="mailto:Devel@lists.laptop.org" target="_blank">Devel@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/devel" target="_blank">http://lists.laptop.org/listinfo/devel</a><br>
</div></font></blockquote></div><br>
</div><br>