tag:blogger.com,1999:blog-26863333734587141512024-03-13T02:23:42.061-07:00Fedora/RHEL power management blogPower consumption measurement/benchmarking, announcements, news and tips from PM SIG (<a href="http://fedoraproject.org/wiki/SIGs/PowerManagement">http://fedoraproject.org/wiki/SIGs/PowerManagement</a>) related to power management in Fedora/RHEL.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-2686333373458714151.post-47740781886600626592013-04-19T07:55:00.000-07:002013-04-19T08:03:24.638-07:00F19 Power Management Test Day Early Report<p>Thanks all who attended the event (personally or online). There were about 40 visitors during the day in our "test room" in Brno office and it was really great to meet there. The demand was more than the available room could handle :) and we are sorry for the limited number of seats. Most of the visitors helped us with the testing and went through the prepared test cases. As a thank you they got a small gift from us.</p>
<p>On the attached picture you can see testers in action :). Notice the graph on the TV in the background - everybody who connected her/his machine to our measurement equipment was able to see it's power consumption in the real time on that TV.</p>
<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWqA42WsH2MJX9OWQ_DX4vDIXex4EDNTkpZISH9f0kiv9NzQnuFAS_bqQqASsNQ0kaNbLoQgIC2NRgbL4kYQFEMSBKYG64HqIOAl2MPbJR21FI87vAcYRz39fejYBOZeUPZYn9Ua-8-KU/s1600/20130417_001.jpg" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWqA42WsH2MJX9OWQ_DX4vDIXex4EDNTkpZISH9f0kiv9NzQnuFAS_bqQqASsNQ0kaNbLoQgIC2NRgbL4kYQFEMSBKYG64HqIOAl2MPbJR21FI87vAcYRz39fejYBOZeUPZYn9Ua-8-KU/s320/20130417_001.jpg" /></a></p>
<p>As the proof that Fedora is ARM friendly, we had there <a href="http://cubieboard.org/">Cubieboard</a>, of course running Fedora 19 :) Later in the day we used it for the real time power consumption graphing, replacing the dedicated PC and saving a lot of energy :).</p>
<p>Few visitors were interested in Fedora 19 in general. That wasn't problem, because we had there spare laptops with Fedora 19 pre-release installation, so they could freely try it and ask questions. We also ran the test day online and provided guidance on the #fedora-test-day Freenode IRC channel. We did our best, but sometimes it was really hard to handle it all, so we are very sorry if you experienced increased latency in our IRC responses.</p>
<p>So far many of the testers have already submitted their results. Such feedback is very valuable for us. If you missed the event, you can still participate online, just follow the instructions on the test day wiki <a href="http://fedoraproject.org/wiki/Test_Day:2013-04-17_Power_Management">http://fedoraproject.org/wiki/Test_Day:2013-04-17_Power_Management</a>. And of course don't forget to submit your results :). We plan to release the detailed stats later (it will be calculated from the data submitted till 2013-04-28).</p>Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com4tag:blogger.com,1999:blog-2686333373458714151.post-85796527075514557982013-04-16T15:07:00.002-07:002013-04-16T15:07:25.720-07:00F19 Power Management Test DayFedora 19 power management test day will start this Wednesday (2013-04-17). The event will be mainly focused on laptops, but even desktop machines can be tested. There are also prepared three test cases which are suitable for secondary architectures, thus e.g. if you are running Fedora 19 pre-release on your ARM box, please join us and share your numbers. There are also prepared special test cases targeting aggressive power-savings on Intel, Nvidia and ATI / AMD (Radeon) graphics cards.
This is also on-site event that is running along with the Redhat Open House event. So if you are near Brno, feel free to join us in person. You can bring your hardware and test it there. There will be available calibrated digital power meter (Chroma 66202) so you will be able to measure power consumption of your hardware. Live USB/CD will be available so you can participate in the test day and not affecting your production machine.
There is also prepared new web application which you can use for submitting your results, but if you prefer the wiki, you can still submit your results through the wiki as usual. Everybody is welcome to attend this event and your attendance will help us to make the Fedora better. Going through all test cases take less an hour, but you don't need to finish them all - just select test cases you are interested in, partial results are also valuable for us. Just visit the PM test day WWW page <a href="http://fedoraproject.org/wiki/Test_Day:2013-04-17_Power_Management">http://fedoraproject.org/wiki/Test_Day:2013-04-17_Power_Management</a> and follow on-site instructions or <a href="http://redhatopenhouse.shdlr.com/grid">join us in person</a>.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com1tag:blogger.com,1999:blog-2686333373458714151.post-2375048774069485742013-01-25T04:42:00.000-08:002013-01-25T04:47:40.534-08:00F17/F18 simple power consumption comparison on Lenovo T520<style type="text/css">
<!--
table.result {border: 3px solid #000000; border-spacing: 0px; border-collapse: collapse; text-align: center; vertical-align: middle}
.hheader {border: 1px solid #000000; background-color: #cccccc; padding-left: 3px; padding-right: 3px}
.vheader {border: 1px solid #000000; background-color: #ccffff; text-align: left; padding-left: 3px; padding-right: 3px}
td {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
th {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
.good {background-color: #3deb3d}
.bad {background-color: #ff3333}
-->
</style><br />
<p>
Fedora 18 is out and I had spare Lenovo ThinkPad T520 so I performed a simple check how it stays against Fedora 17 regarding power consumption. The check was very simple, only 4 tests were run on default installation of Fedora 17/18:
<ol><li><b>Active idle test</b> - crond disabled and 30 min in the idle for stabilization then for 3 x 20 min the energy consumption was measured. From these 3 results the average power consumption was calculated.</li>
<li><b>Archive (tar.bz2) unpack</b> - the test archive was unpack 3 times on ext4 root partition. Between each run the VM cache was dropped. Energy consumption was measured and average power consumption was calculated.</li>
<li><b>Kernel rebuild</b> - kernel-3.7.4-104 srpm was rebuild in mock (one time only). Energy consumption was measured and average power consumption was calculated. In the measurement the mock setup and builddeps installation wasn't counted.</li>
<li><b>PowerTOP statistics (number of wakeups)</b> - PowerTOP tool was run for 3 x 20 seconds and average number of wakeups was calculated.</li></ol>
For the measurement the Chroma 66202 Energy Star measurements compliant wattmeter was used. The energy consumed from the AC outlet was measured. It means that losses on the cabling and AC/DC adapter are counted in the results, so if you run on the battery the real power consumption will be slightly lower. The Lenovo ThinkPad T520 was used for the test. It has Intel Core i7-2640M CPU @ 2.80GHz and 8GB RAM. LCD backlight and wireless was turned off during the test.
</p>
<table class="result"><caption>Table 1: Results </caption><tbody>
<tr class="hheader"><td>Test</td><td>Fedora 17</td><td>Fedora 18</td></tr>
<tr><td class="vheader">Active idle Pavg [W]</td><td>10.221</td><td>8.748</td></tr>
<tr><td class="vheader">Archive unpack Pavg [W]</td><td>31.346</td><td>31.341</td></tr>
<tr><td class="vheader">Kernel rebuild Pavg [W]</td><td>34.907</td><td>34.588</td></tr>
<tr><td class="vheader">Wakeups count [1]</td><td>39.3</td><td>56.7</td></tr>
</tr>
</tbody></table><br />
From the table 1 it is apparent that the power consumption under the load is nearly the same (probably the same due to measurement error). For the active idle the power consumption of Fedora 18 was lower. Unfortunately I haven't time to observe the reason of this, but I am going to do more tests on different HW to proof that it wasn't some anomaly. The wakeups count are comparable. Different PowerTOP versions was used for the measurement and it may be the source of the small difference. The good message is that there wasn't observed any regression in Fedora 18 regarding power consumption (on T520).Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com1tag:blogger.com,1999:blog-2686333373458714151.post-85543252002826998562012-09-25T02:01:00.002-07:002012-09-25T02:02:05.247-07:00Tip: control your external monitor from your desktop by ddccontrol<p>Recently I packaged <a href="http://ddccontrol.sourceforge.net">ddccontrol</a> for Fedora. It is nifty tool that allows you to change settings of your external monitor (brightness, backlight, RGB, ...) from your desktop or CLI. It uses DDC/CI protocol thus this functionality needs to be supported by your monitor and graphics card. Personally, I tested it with Intel video cards (i915) and recent Nvidia video cards (with binary driver) and it worked correctly. It should also work on others. There is a list of supported HW in <a href="http://ddccontrol.sourceforge.net/doc/latest/index.html">upstream documentation</a>, but the list isn't exhaustive, thus give it a try even if your HW is not listed there. In case it doesn't work don't forget to try all other video connectors (on both monitor and video card) because this functionality is sometimes supported only on a subset of installed connectors. You will also need i2c_dev kernel module, because this functionality requires I2C.</p>
<p>For quickstart there is GTK GUI application called gddccontrol (package ddccontrol-gtk). It allows you to create/manage/switch profiles, thus it is possible to have different contrast/brightness settings for day/night or gaming/work. For all controls to work correctly your monitor needs to be in ddccontrol database otherwise there will be only generic VESA controls. In this case you can create the profile for your monitor yourself or at least send report to upstream (ddccontrol-users AT lists.sourceforge.net) containing the output from the following command:
<pre>LANG= LC_ALL= ddccontrol -p -c -d</pre>
</p>
<p>For more details and instructions how to use the CLI tool see <a href="http://ddccontrol.sourceforge.net/doc/latest/index.html">upstream documentation</a>.</p>
Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com2tag:blogger.com,1999:blog-2686333373458714151.post-19225885886705382382011-12-03T06:56:00.000-08:002011-12-03T06:56:17.571-08:00Tip: power management settings for RadeonFrom kernel 2.6.35 and up Radeon driver supports power management (PM). The default behavior is performance oriented, thus if you want to save some power you will need to tune the defaults. You can select from two PM methods: <i>dynpm</i> and <i>profile</i>. The <i>dynpm</i> method dynamically change the GPU clocks according to GPU load. With this method you have enough performance when needed and power savings when in idle. But this method can cause flickering during reclocking and doesn't support multi heads. To activate this method use:<br />
<pre># echo dynpm > /sys/class/drm/card0/device/power_method
</pre>With <i>profile</i> method you can select from several profiles: <i>default</i>, <i>auto</i>, <i>low</i>, <i>mid</i> and <i>high</i>. Default settings is the <i>default</i> profile. It uses default clocks and doesn't change power states. The <i>low</i>, <i>mid</i>, <i>high</i> profiles change the GPU clocks accordingly. The <i>auto</i> profile switches automatically between <i>high</i> and <i>mid</i> depending whether the system is running on AC or battery. It also switches to <i>low</i> when the monitors are in dpms off. Not all cards supports all profiles. For example to activate the <i>auto</i> profile, use:<br />
<pre># echo profile > /sys/class/drm/card0/device/power_method
# echo auto > /sys/class/drm/card0/device/power_profile
</pre>More details can be found on <a href="http://www.x.org/wiki/RadeonFeature">http://www.x.org/wiki/RadeonFeature</a>.<br />
<br />
We also added experimental support for this to tuned. We activate the power savings in desktop and laptop profiles. The code is currently in tuned git.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com0tag:blogger.com,1999:blog-2686333373458714151.post-36050185206228358992011-11-25T03:31:00.000-08:002011-11-25T03:31:40.046-08:00Fedora 16: Firefox power consumption comparison<style type="text/css">
<!--
table.result {border: 3px solid #000000; border-spacing: 0px; border-collapse: collapse; text-align: center; vertical-align: middle}
.hheader {border: 1px solid #000000; background-color: #cccccc; padding-left: 3px; padding-right: 3px}
.vheader {border: 1px solid #000000; background-color: #ccffff; text-align: left; padding-left: 3px; padding-right: 3px}
td {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
th {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
.good {background-color: #3deb3d}
.bad {background-color: #ff3333}
-->
</style><br />
<br />
Fedora 16 has been released so I decided to test it with my Firefox test script to find out what's the power consumption in typical real world "web browsing" scenarios.<br />
<br />
<h2>Test description</h2><span style="font-size: large;"><span style="font-size: small;">I used the same iMacros script as in <a href="http://pm-blog.yarda.eu/2011/09/power-consumption-comparison-of-firefox.html">previous Firefox power consumption test</a>.</span></span> I only had to do some syntax changes, because iMacros API changed little bit since the last test.<br />
<br />
<br />
<h3>Hardware</h3><span style="font-size: small;">Tests run on HP Proliant DL360 G6 with default BIOS settings / no tunings. For measurements, I used <a href="http://www.chromaate.com/product/detail.aspx?id=1593">Chroma 66202</a> the ENERGY STAR/IEC 62301 compliant power meter. The total energy consumed on AC side was monitored. As data logger / power meter controller another machine was used to not influence the machine under test.</span><span style="font-size: small;"> </span><br />
<br />
<h3>Software</h3><span style="font-size: small;">Latest available kernels and SW builds as available during the test day were used for Fedora 16.</span><br />
<br />
<table class="result"><caption>Table 1: Used software</caption><caption>are </caption><tbody>
<tr class="hheader"> <td>System</td><td>Kernel / SW build</td><td>Firefox</td><td>Flash</td></tr>
<tr><td class="vheader">Fedora 15</td><td>2.6.38.8-35</td><td><span style="font-size: small;">5.0</span></td><td><span style="font-size: small;">Beta 2 11.0.d1.98</span></td></tr>
<tr><td class="vheader">Fedora 16</td><td>3.1.1-2</td><td>7.0.1</td><td>11.1.102.55</td></tr>
</tbody></table><br />
<h2>Results</h2><br />
<span style="font-size: small;"> For comparison with Fedora 15 I've used the results measured in the <a href="http://pm-blog.yarda.eu/2011/09/power-consumption-comparison-of-firefox.html">previous test</a>.</span><br />
<br />
<span style="font-size: small;">In the tables with results, there are power consumption, energy and sample standard deviations (marked stdev) for both values.</span> <br />
<br />
<h3>Active idle</h3><span style="font-size: large;"><span style="font-size: small;">For this test, Firefox has been running with about:blank for 30 minutes.</span> </span><br />
<br />
<table class="result"><caption>Table 2: Idle state </caption><tbody>
<tr class="hheader"> <td>System</td><td>Pavg [W]</td><td>Pavg stdev</td><td>Eavg [Wh]</td><td>Eavg stdev</td></tr>
<tr><td class="vheader">Fedora 15</td><td class="td good">55.9613</td><td>0.0381</td><td class="td good">27.9744</td><td>0.019</td></tr>
<tr><td class="vheader">Fedora 16</td><td>56.1119</td><td>0.0500</td><td>28.0497</td><td>0.025</td></tr>
</tbody></table><br />
There is no big difference when comparing Fedora 16 and Fedora 15 in idle state. Fedora 15 needs little bit less energy, but this is probably an error caused by several peaks during Fedora 16 measurement.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivoI-S8-RnKOPqGvOT1NzDHgxFJCH_A0nE7aUya7N1s81Bief2ZKV8wnlXnQ7frc9K1W8vVoUjHCEl3S9PN1tIF7ziqhC0tjT04adUfGB9YlADSywHyYOVHeIOX52hznzNuCQPrTJ_JLvT/s1600/idle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivoI-S8-RnKOPqGvOT1NzDHgxFJCH_A0nE7aUya7N1s81Bief2ZKV8wnlXnQ7frc9K1W8vVoUjHCEl3S9PN1tIF7ziqhC0tjT04adUfGB9YlADSywHyYOVHeIOX52hznzNuCQPrTJ_JLvT/s1600/idle.png" /></a></div><br />
<br />
<h3>iMacros script with HTML5 Youtube videos</h3>For this test, iMacros test was used as described above and Youtube was configured to use HTML5 video playback.<br />
<span style="font-size: medium;"></span><br />
<br />
<table class="result"><caption>Table 3: iMacros with HTML5 Youtube</caption><tbody>
<tr class="hheader"><th>System</th><th><div style="text-align: center;"><b>Pavg</b><b> [W]</b></div></th><th>Pavg stdev</th><th><b>Eavg [Wh]</b></th><th>Eavg stdev</th></tr>
<tr><td class="vheader">Fedora 15</td><td style="text-align: center;">65.6824</td><td>0.1331</td><td>32.8338</td><td>0.0665</td></tr>
<tr><td class="vheader">Fedora 16</td><td class="td good">65.4778</td><td>0.1599</td><td class="td good">32.7316</td><td>0.0799</td></tr>
</tbody></table><br />
Fedora 16 needs little bit less energy when Flash is disabled and HTML5 is used for Youtube videos playback.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_YjbIBOIaZLwJXFJ67WN-TPJJzq2jkjMmOBLnR7CIp7sylxUrHL86flSRqYEOZSVxpwQJkUTBXPFrYJARfLMa5-cb6HjWJ_0KGM9D8MEcGqY6t7Cw8B2FmhFmjbsQPUJ-TKV9pTN7ShdE/s1600/html5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_YjbIBOIaZLwJXFJ67WN-TPJJzq2jkjMmOBLnR7CIp7sylxUrHL86flSRqYEOZSVxpwQJkUTBXPFrYJARfLMa5-cb6HjWJ_0KGM9D8MEcGqY6t7Cw8B2FmhFmjbsQPUJ-TKV9pTN7ShdE/s1600/html5.png" /></a></div><br />
<br />
<h3>iMacros script with Flash Youtube videos</h3>This test is the same as previous one, but Firefox flash plugin was activated and Youtube was configured to use Flash for videos playback. This also activates Flash adverts on other pages.<span style="font-size: large;"></span><br />
<div class="separator" style="clear: both; text-align: center;"></div><span style="font-size: large;"> </span><br />
<br />
<table class="result"><caption>Table 4: iMacros with Flash Youtube</caption><tbody>
<tr class="hheader"><th>System</th><th><div style="text-align: center;"><b>Pavg</b><b> [W]</b></div></th><th>Pavg stdev</th><th><b>Eavg [Wh]</b></th><th>Eavg stdev</th></tr>
<tr><td class="vheader">Fedora 15</td><td class="td good">68.9575</td><td>0.2617</td><td class="td good">34.4711</td><td>0.1308</td></tr>
<tr><td class="vheader">Fedora 16</td><td>71.2404</td><td>0.0837</td><td>35.6122</td><td>0.0418</td></tr>
</tbody></table><br />
Big surprise is that new version of Flash or Firefox in Fedora 16 caused significant increase of power consumption. Fedora 16 with Flash needed almost 1.5 W more than Fedora 15.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAorGzDyg0A8ySN2Fo5gq3g7DYGZc9-m4QzxuebLEggm3LoAvXaA29_PDCW3UorEa4Ni5XZcWAu9qUH0bgTvv88il4t7QX_09brgt7efj8cPD48iWqVrf__wtD7jQHgKsNqySTNkeJi73K/s1600/flash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAorGzDyg0A8ySN2Fo5gq3g7DYGZc9-m4QzxuebLEggm3LoAvXaA29_PDCW3UorEa4Ni5XZcWAu9qUH0bgTvv88il4t7QX_09brgt7efj8cPD48iWqVrf__wtD7jQHgKsNqySTNkeJi73K/s1600/flash.png" /></a></div><h3>Flash power consumption</h3><span style="font-size: large;"> </span><br />
<span style="font-size: small;">This table shows difference between Table 4 and Table 3 which demonstrates saved energy when not using Flash.</span><br />
<br />
<table class="result"><caption>Table 5: Flash power consumption</caption><tbody>
<tr class="hheader"><th>System</th><th><div style="text-align: center;"><b>Pavg</b><b> [W]</b></div></th><th><b>Eavg [Wh]</b></th></tr>
<tr><td class="vheader">Fedora 15</td><td class="td good" style="text-align: center;">3.2751</td><td class="td good">1.6373</td></tr>
<tr><td class="vheader">Fedora 16</td><td>5.7626</td><td>2.8806</td></tr>
</tbody></table><br />
We can see the Flash power consumption increase here.<br />
<br />
<h2>Conclusion</h2><span style="font-size: small;">As the previous test showed, browsing web with Flash enabled consumes more energy. This is especially true in Fedora 16 with the Flash/Firefox version we tested. There's no big difference between Fedora 15 and Fedora 16 when browsing web without Flash.</span>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-2686333373458714151.post-44727356190776929222011-10-18T00:51:00.000-07:002011-11-24T05:19:19.263-08:00Deeper C states and increased latency<style type="text/css">
<!--
table {border: 3px solid #000000; border-spacing: 0px; border-collapse: collapse; text-align: center; vertical-align: middle}
th {border: 1px solid #000000; border-bottom: 3px solid #000000; background-color: #cccccc; padding-left: 3px; padding-right: 3px}
.vth {border: 1px solid #000000; border-bottom: 3px solid #000000; border-right: 3px solid #000000; background-color: #cccccc; padding-left: 3px; padding-right: 3px}
td {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
.vtd {border: 1px solid #000000; border-right: 3px solid #000000; background-color: #ccffff; padding-left: 3px; padding-right: 3px; font-weight: bold}
-->
</style><br />
<br />
Today it is common to describe processor power consumption and thermal management state by CX, states where X can be number 0 to n (n depends on the CPU type). In the C0 state the CPU is running. In C-states higher than 0 the CPU is stopped (sleeps). Higher C states means more power savings but also longer delay when returning to C0 (higher latency). ACPI specification describes C0 - C3, but recent CPUs mostly supports more C states. With several BIOSes, higher C states are mapped through C3. The mapping can be done dynamically according to operational conditions (e.g. for some laptops when running on battery the C6 is mapped, when running on AC the C4 is mapped). Overview of the most known C-states can be found in the Table 1 (non-complete compilation of <a href="#1">[1-4]</a>).<br />
<br />
<table><tr><th class="vth">C-state</th><th>Name</th><th>Description</th></tr>
<tr><td class="vtd">C0</td><td>Operating state</td><td>CPU is fully turned on and executing instructions. It can be in one of P-states (P0 - Pn) which defines operational voltage and frequency.</td></tr>
<tr><td class="vtd">C1</td><td>Halt</td><td>CPU main internal clocks are stopped. Bus interface unit and APIC are kept running at full speed.</td></tr>
<tr><td class="vtd">C1E</td><td>Enhanced Halt</td><td>CPU main internal clocks are stopped and the CPU voltage is reduced. Bus interface unit and APIC are kept running. The frequency can be also reduced.</td></tr>
<tr><td class="vtd">C2</td><td>Stop Clock</td><td>CPU internal and external clocks are stopped via hardware.</td></tr>
<tr><td class="vtd">C3</td><td>Deep Sleep</td><td>CPU internal and external clocks are stopped, L1/L2 cache can be flushed.</td></tr>
<tr><td class="vtd">C4</td><td>Deeper Sleep</td><td>CPU voltage is reduced.</td></tr>
<tr><td class="vtd">C5</td><td>Enhanced Deeper Sleep</td><td>CPU voltage is reduced even more and the memory cache is turned off.</td></tr>
<tr><td class="vtd">C6</td><td>Deep Power Down</td><td>Core states are saved into memory with low power consumption. It can reduce the CPU internal voltage to any value, including 0 V.</td></tr>
<tr><td class="vtd">C7</td><td>Deeper Power Down <a href="#_1">*1</a></td><td>Same as C6 + flush of L3 cache.</td></tr>
</table><br />
As mentioned earlier higher C states means not only less power consumption, but also higher latency. That's why several BIOSes uses different mapping for AC / battery. Simple experiment will proof the above claims.<br />
<br />
<h3>Comparison of latency for AC / battery mode</h3>At first we let the Lenovo T500 idling on AC. After while we got the following powertop output:<br />
<pre>Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 0,8%) Turbo Mode 2,7%
polling 0,0ms ( 0,0%) 2,81 Ghz 0,0%
C1 mwait 0,0ms ( 0,0%) 2,14 Ghz 0,0%
C2 mwait 0,3ms ( 0,3%) 1,60 Ghz 0,2%
C4 mwait 6,6ms (98,9%) 800 Mhz 97,2%
</pre>As you can see the CPU is most of the time in C4. We can check the latency reported by kernel with the following command:<br />
<pre># cat /sys/devices/system/cpu/cpu0/cpuidle/state3/latency
57
</pre>This means 57 microseconds (C4 is currently mapped to state3 - the last state in the cpuidle subdir). Then we ping the T500 through LAN from another machine and we got: <b>401 (31) us</b>. It is average of 10 runs. The standard deviation of the sample is written in the braces.<br />
<br />
Next we performed the same experiment with the T500 running on battery. We got the following powertop output:<br />
<pre>Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 0.1%) Turbo Mode 0.9%
polling 0.0ms ( 0.0%) 2.81 Ghz 0.0%
C1 mwait 0.1ms ( 0.0%) 2.14 Ghz 0.0%
C2 mwait 0.7ms ( 0.1%) 1.60 Ghz 0.0%
C6 mwait 58.9ms (99.8%) 800 Mhz 99.1%
Wakeups-from-idle per second : 18.8 interval: 15.0s
Power usage (ACPI estimate): 12.5W (5.3 hours)
</pre>As you can see, the CPU is now most of the time in the C6, thus the CPU power consumption can be reduced near to zero. For the latency:<br />
<pre># cat /sys/devices/system/cpu/cpu0/cpuidle/state3/latency
162
</pre>It means 162 microseconds (C6 is currently mapped to state3). The ping result: <b>493 (33) us</b>. That is increase about 100 us.<br />
<br />
<h3>The intel_idle driver</h3>The problem with the latency can be even worse if the intel_idle driver <a href="#5">[5]</a> is utilized. This driver has been included since kernel version 2.6.35. It is native hardware driver for the latest Intel CPUs. It supersedes acpi_idle on supported processors (currently Intel Atom, Intel Core i3/i5/i7, associated Intel Xeons). The intel_idle knows more than ACPI and it can bypass the firmware / BIOS settings and the processor can then enter deeper power savings states more aggressively. By default the intel_idle driver is built into the Fedora kernel and is activated automatically on boot (on supported CPUs). This result in higher power savings by default but also higher latency.<br />
<br />
If the increased latency is unacceptable, it is possible to specify the max allowed C state by the kernel command line parameter intel_idle.max_cstate, e.g. to use only C0, boot with the intel_idle.max_cstate=0.<br />
<br />
<h3>The PM QoS kernel interface</h3>For finer runtime control the PM QoS interface <a href="#6">[6]</a> can be utilized. Through this interface every process can register it's latency requirement and the cpuidle driver will not transition to deeper C states if the lowest request wouldn't be satisfied. The request is written as four-bytes signed integer to /dev/cpu_dma_latency. The request is valid till the file descriptor is held open. E.g. to request the latency to be lower than 100 us the following commands can be used: <br />
<pre># exec 3>/dev/cpu_dma_latency
# echo -ne '\0144\000\000\000' >&3
</pre>For the echo command the 100 (decimal) was translated into 0144 (octal). Let's repeat our experiment:<br />
<pre>Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 0.2%) Turbo Mode 0.1%
polling 0.0ms ( 0.0%) 2.81 Ghz 0.0%
C1 mwait 0.1ms ( 0.2%) 2.14 Ghz 1.3%
C2 mwait 39.7ms (99.6%) 1.60 Ghz 0.0%
C6 mwait 0.0ms ( 0.0%) 800 Mhz 97.3%
Wakeups-from-idle per second : 50.5 interval: 20.0s
Power usage (ACPI estimate): 14.9W (4.3 hours)
</pre>As you can see the CPU is now not transitioning to C6. As the side effect the power consumption increased about 2.5 W (by ACPI estimation) and the ping result is a bit better: <b>301 (30) us</b>.<br />
<br />
When the lower latency is not needed, we can remove the requirement from the kernel by closing the file descriptor:<br />
<pre># exec 3>&-
</pre>Let's try to set the required latency to 0, the powertop results:<br />
<pre>Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 0.2%) Turbo Mode 0.0%
polling 26.4ms (99.8%) 2.81 Ghz 0.0%
C1 mwait 0.0ms ( 0.0%) 2.14 Ghz 0.0%
C2 mwait 0.0ms ( 0.0%) 1.60 Ghz 0.0%
C6 mwait 0.0ms ( 0.0%) 800 Mhz 99.9%
Wakeups-from-idle per second : 37.8 interval: 15.0s
Power usage (ACPI estimate): 16.9W (3.9 hours) (long term: 15.7W,/4.2h)
</pre>Note the increased power consumption and that the cpufreq wasn't affected, i.e. the CPU is running at it's lowest speed. The ping result: <b>195 (34) us</b>.<br />
<br />
<h3>User control of PM QoS</h3>The PM QoS interface is also proxied by upower daemon, thus it is possible to control the PM QoS settings through dbus interface (org.freedesktop.UPower.QoS).<br />
<br />
The support was also recently added into tuned latency-performance profile (currently only in upstream git <a href="7">[7]</a>, but it will be probably part of the future v0.2.22 release). To test it:<br />
<pre># tuned-adm profile latency-performance
</pre>The powertop results:<br />
<pre>Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 0.4%) Turbo Mode 100.0%
polling 74.3ms (99.6%) 2.81 Ghz 0.0%
C1 mwait 0.0ms ( 0.0%) 2.14 Ghz 0.0%
C2 mwait 0.0ms ( 0.0%) 1.60 Ghz 0.0%
C6 mwait 0.0ms ( 0.0%) 800 Mhz 0.0%
Wakeups-from-idle per second : 13.4 interval: 5.0s
Power usage (ACPI estimate): 31.4W (2.1 hours)
</pre>Note that the power consumption nearly doubles and the CPU is running most of the time in Turbo mode. The ping results: <b>176 (32) us</b>. Thus we got the lowest latency, but our setup is far from being power efficient.<br />
<br />
<br />
*1 <a name="_1">Deduced, no official name found in Intel specs.</a><br />
[1] <a name="1" href="http://www.acpi.info/spec.htm">http://www.acpi.info/spec.htm</a><br />
[2] <a name="2" href="http://www.hardwaresecrets.com/article/611">http://www.hardwaresecrets.com/article/611</a><br />
[3] <a name="3" href="http://www.intel.com/content/www/us/en/processors/xeon/xeon-e3-1200-family-vol-1-datasheet.html">http://www.intel.com/content/www/us/en/processors/xeon/xeon-e3-1200-family-vol-1-datasheet.html</a><br />
[4] <a name="4" href="http://www.lesswatts.org/documentation/silicon-power-mgmnt/">http://www.lesswatts.org/documentation/silicon-power-mgmnt/</a><br />
[5] <a name="5" href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2671717265ae6e720a9ba5f13fbec3a718983b65">http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2671717265ae6e720a9ba5f13fbec3a718983b65</a><br />
[6] <a name="6" href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/power/pm_qos_interface.txt;hb=HEAD">http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/power/pm_qos_interface.txt;hb=HEAD</a><br />
[7] <a name="7" href="http://git.fedorahosted.org/git/?p=tuned.git;a=commit;h=31639fdec76b294fd67c78ec332fe26bf0ad7bb9">http://git.fedorahosted.org/git/?p=tuned.git;a=commit;h=31639fdec76b294fd67c78ec332fe26bf0ad7bb9</a>Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com1tag:blogger.com,1999:blog-2686333373458714151.post-90912209751618762472011-10-06T05:12:00.000-07:002011-11-24T05:20:51.103-08:00F16 power management test day - resultsThanks to all who attended the <a href="http://fedoraproject.org/wiki/Test_Day:2011-09-29_PowerManagement">F16 Power Management Test Day</a>, the feedback was really great. If you missed the event you can still post your results. Stats (till 2011-10-06) follows:<br />
<br />
<h3>Overall stats</h3>Submitted results: <b>20</b><br />
Unique testers: <b>17</b><br />
Unique machines: <b>19</b><br />
Submitted results with valid measurement data (the test day had two parts -<br />
usual test cases and very simple measurement / benchmark): <b>15</b><br />
<br />
<h3>Test cases stats</h3>Test cases available (sum for all testers): <b>140</b><br />
Test cases finished (sum for all testers): <b>127</b><br />
Test cases not tested (sum for all testers): <b>13</b><br />
All testers finished in total <b>90.71 %</b> of available test cases.<br />
<br />
Test cases passed: <b>100</b> (i.e. <b>78.74 %</b> of finished)<br />
Test cases passed with warn: <b>109</b> (i.e. <b>85.83 %</b> of finished)<br />
Test cases failed: <b>18</b> (i.e. <b>14.17 %</b> of finished)<br />
It is better than <b>85 %</b> success rate if warn is counted as pass.<br />
<br />
<h3>Measurement stats</h3>Please note the following results are provided here only for<br />
informative purposes. The measurement method used during the<br />
test day was very simple, thus the resulting data are only very rough<br />
estimation.<br />
<br />
Power savings for laptop-battery-powersave tuned profile:<br />
Max. reported power savings: <b>650 mWh</b><br />
Min. reported power savings: <b>-702 mWh</b> (i.e. not savings)<br />
Average power savings for all machines (stddev in braces): <b>138.1 (361.9) mWh</b><br />
<br />
Power consumption highlights:<br />
The machine that consumed the most energy: <b>HP Pavilion dv6</b><br />
Energy consumed after 15 mins in active idle (laptop-battery-powersave<br />
tuned profile): <b>10368 mWh</b><br />
<br />
The machine that consumed the least energy: <b>EeePC Asus 1000H</b><br />
Energy consumed after 15 mins in active idle (laptop-battery-powersave<br />
tuned profile): <b>2057 mWh</b><br />
<br />
<h3>Bugzilla stats</h3>Bugs reported or mentioned during the test day: <b>5</b><br />
List of bugs:<br />
<a href="http://bugzilla.redhat.com/show_bug.cgi?id=637397">Bug 637397 - [Pineview] Samsung N150 plus netbook: no brightness control</a><br />
<a href="http://bugzilla.redhat.com/show_bug.cgi?id=719679">Bug 719679 - Sometimes, suspend on close-lid may be the best choice for a docked laptop</a><br />
<a href="http://bugzilla.redhat.com/show_bug.cgi?id=742061">Bug 742061 - [abrt] kernel: WARNING: at net/mac80211/util.c:540 ieee80211_can_queue_work+0x3b/0x41 [mac80211](): TAINTED ---------W</a><br />
<a href="http://bugzilla.redhat.com/show_bug.cgi?id=742325">Bug 742325 - SELinux is preventing /usr/libexec/colord from 'read' accesses on the file mtab.</a><br />
<a href="http://bugzilla.redhat.com/show_bug.cgi?id=742344">Bug 742344 - [nouveau] Resume from suspend is broken</a>Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com0tag:blogger.com,1999:blog-2686333373458714151.post-61547715883840506892011-09-28T12:04:00.000-07:002011-11-24T05:21:17.516-08:00F16 power management test day will start this Thursday (2011-09-29)Fedora 16 power management test day will start this Thursday (2011-09-29). The event will be mainly focused on laptops, but even desktop machines can be tested. Everybody is welcome to attend this event and your attendance will help us to make the PM in Fedora better. Special LiveCD was prepared for this event, thus it is really easy to attend. There were created several test cases. Going through all test cases take less an hour. Just visit the PM test day WWW page <a href="http://fedoraproject.org/wiki/Test_Day:2011-09-29_PowerManagement">http://fedoraproject.org/wiki/Test_Day:2011-09-29_PowerManagement</a> and follow the on-site instructions. If you find test cases you are not interested in (or if you don't have time to test it all), just test what you want and report the results, your feedback will be still valuable to us.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com0tag:blogger.com,1999:blog-2686333373458714151.post-30008936119465885142011-09-28T11:40:00.000-07:002011-11-24T05:22:14.453-08:00Power management guide for F15 was publishedPower management guide for F15 went through doc team for language corrections and is finally available online: <a href="http://docs.fedoraproject.org/en-US/Fedora/15/html/Power_Management_Guide/index.html">http://docs.fedoraproject.org/en-US/Fedora/15/html/Power_Management_Guide/index.html</a>. Let's focus on F16 :).Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com0tag:blogger.com,1999:blog-2686333373458714151.post-4637565737286419992011-09-14T06:53:00.000-07:002011-11-24T05:22:30.463-08:00Power consumption comparison of Firefox browser on various platforms<style type="text/css">
<!--
table.result {border: 3px solid #000000; border-spacing: 0px; border-collapse: collapse; text-align: center; vertical-align: middle}
.hheader {border: 1px solid #000000; background-color: #cccccc; padding-left: 3px; padding-right: 3px}
.vheader {border: 1px solid #000000; background-color: #ccffff; text-align: left; padding-left: 3px; padding-right: 3px}
td {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
th {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
.good {background-color: #3deb3d}
.bad {background-color: #ff3333}
-->
</style><br />
<br />
Since I have more time during the summer, I have finally decided to do Firefox web browser power consumption comparison on various platforms. The goal was to compare power consumption in typical real world "browsing" scenarios.<br />
<br />
<span style="font-size: large;">Test description</span><br />
<br />
I have created simple test script using iMacros Firefox addon to automatize browsing in 3 tabs, the following scenarios were implemented:<br />
<ol><li>Youtube.com videos playback + scrolling Youtube page.</li>
<li>Novinky.cz articles reading (simulated by scrolling the page).</li>
<li>Google.com searching (search term typing simulation, scrolling the page, opening the result).</li>
</ol>Every measurement lasted for 30 minutes and every test was measured three times and average values were counted. Before each test the system was left for 10 hours in idle to stabilize. Five 64 bit systems have been tested: Fedora 15, RHEL5, RHEL6, Windows 7, Windows Server 2008 R2. Latest SW updates were applied and default setting and no tunings (i.e. the Balanced power saver profile on Windows) were used. The following tests were performed:<br />
<ol><li>Active idle state with running Firefox with about:blank page.</li>
<li>Scenario 1 with HTML5 Youtube videos playback and scenarios 2 and 3 in parallel.</li>
<li>Scenario 1 with Flash Youfube videos playback and scenarios 2 and 3 in parallel.</li>
</ol><span style="font-size: large;">Hardware</span><br />
<br />
<span style="font-size: small;">Tests run on HP Proliant DL360 G6 with default BIOS settings / no tunings. For measurements, I used <a href="http://www.chromaate.com/product/detail.aspx?id=1593">Chroma 66202</a> the ENERGY STAR/IEC 62301 compliant power meter. The total energy consumed on AC side was monitored. As data logger / power meter controller another machine was used not to influence the machine under test.</span><br />
<br />
<span style="font-size: large;">Software</span><br />
<br />
<span style="font-size: medium;"><span style="font-size: small;">Latest available kernels and SW builds as available during the test day were used. I've used binary versions of Firefox from Mozilla website, except RHEL5, where Firefox had to be compiled (Firefox 5.0 binary version does not support RHEL5). Firefox version 5 and latest Flash (Beta 2 11.0.d1.98) was used.<br />
</span></span><br />
<table class="result"><caption>Table 1: Used software</caption><caption>are </caption><tbody>
<tr class="hheader"> <td>System</td><td>Kernel / SW build</td></tr>
<tr><td class="vheader">Fedora 15</td><td>2.6.38.8-35</td></tr>
<tr><td class="vheader">RHEL5</td><td>2.6.18-274</td></tr>
<tr><td class="vheader">RHEL6</td><td>2.6.32-174</td></tr>
<tr><td class="vheader">Windows 7</td><td>6.1.7601</td></tr>
<tr><td class="vheader">Windows Server 2008 R2</td><td>6.1.7601</td></tr>
</tbody></table><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: large;"> </span><span style="font-size: medium;"><span style="font-size: large;"> </span></span></span></span><br />
<span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: large;">Idle state</span><br />
</span> </span></span><br />
<span style="font-size: medium;"><span style="font-size: small;">For this test, Firefox has been running with about:blank for 30 minutes.<br />
</span></span><br />
<table class="result"><caption>Table 2: Idle state </caption><tbody>
<tr class="hheader"> <td>System</td><td><br />
Pavg [W]</td><td>Eavg [Wh]</td></tr>
<tr><td class="vheader">Fedora 15</td><td class="td good">55.9613</td><td class="td good">27.9744</td></tr>
<tr><td class="vheader">RHEL5</td><td>62.1721</td><td>31.0791</td></tr>
<tr><td class="vheader">RHEL6</td><td>56.0810</td><td>28.0343</td></tr>
<tr><td class="vheader">Windows 7</td><td>59.5583</td><td>29.7725</td></tr>
<tr><td class="vheader">Windows Server 2008 R2</td><td>59.02850</td><td>29.5077</td></tr>
</tbody></table><br />
<span style="font-size: medium;"><span style="font-size: small;"> From Table 2 you can see that all Linux distributions except RHEL5 has more or less the same power consumption on our testing platform. Increased power consumption in RHEL5 is probably mostly caused by older kernel (e.g. no tickless kernel). Windows in idle state needs more energy than Linux systems on our testing platform.<br />
<br />
</span></span><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><b><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><span style="font-size: medium;"><span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWfA9uzk9SN-Im7Jvfj0J2x-3o4CtXp-aC9dvcfeWoBymeB8QdzzFYaQzt6VjnxeiA_c5QeAMlJE5ESYNe6dfH9Ps8NC5fVX9GuR5TQvWaJ6GVD2QQESNgimk6iN6SDZuf57gppSatQnuM/s1600/idle.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5644375401781550482" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWfA9uzk9SN-Im7Jvfj0J2x-3o4CtXp-aC9dvcfeWoBymeB8QdzzFYaQzt6VjnxeiA_c5QeAMlJE5ESYNe6dfH9Ps8NC5fVX9GuR5TQvWaJ6GVD2QQESNgimk6iN6SDZuf57gppSatQnuM/s1600/idle.png" style="display: block; margin: 0px auto 10px; text-align: center;" /></a></span></span></span></span></span></span></b></span></span></span></span></span></span></span></span></span></span></span></span><br />
<span style="font-size: large;">iMacros script with HTML5 Youtube videos</span> <br />
<br />
For this test, iMacros test was used as described above and Youtube was configured to use HTML5 video playback. RHEL5 couldn't participate in this test, because of insufficient dependencies.<br />
<br />
<table class="result"><caption>Table 3: iMacros with HTML5 Youtube</caption><tbody>
<tr class="hheader"><th>System</th><th><div style="text-align: center;"><b>Pavg</b><b> [W]</b></div></th><th><b>Eavg [Wh]</b></th></tr>
<tr><td class="vheader">Fedora 15</td><td style="text-align: center;">65.6824</td><td>32.8338</td></tr>
<tr><td class="vheader">RHEL6</td><td>65.9127</td><td>32.9490</td></tr>
<tr><td class="vheader">Windows Server 2008 R2</td><td class="good">65.1743</td><td class="good">32.5799</td></tr>
<tr><td class="vheader">Windows 7</td><td>65.8146</td><td>32.9000</td></tr>
</tbody></table><br />
There are no big differences in power consumption between measured systems on our testing platform. Interesting fact is that Windows systems had the same power consumption as Linux based ones although Windows systems needed more power in idle state.<br />
<br />
<span style="font-size: large;">iMacros script with Flash Youtube videos</span><br />
<br />
This test is the same as previous one, but Firefox flash plugin was activated and Youtube was configured to use Flash for videos playback. This also activates Flash adverts on other pages.<br />
<br />
<table class="result"><caption>Table 4: iMacros with Flash Youtube</caption><tbody>
<tr class="hheader"><th>System</th><th><div style="text-align: center;"><b>Pavg</b><b> [W]</b></div></th><th><b>Eavg [Wh]</b></th></tr>
<tr><td class="vheader">Fedora 15</td><td>68.9575</td><td>34.4711</td></tr>
<tr><td class="vheader">RHEL5</td><td>71.6805</td><td>35.8323</td></tr>
<tr><td class="vheader">RHEL6</td><td>70.4540</td><td>35.2192</td></tr>
<tr><td class="vheader">Windows Server 2008 R2</td><td class="good">65.8582</td><td class="good">32.9218</td></tr>
<tr><td class="vheader">Windows 7</td><td>68.2460</td><td>34.1154</td></tr>
</tbody></table><br />
Surprise here was Windows 2008 R2 Server in comparison with Windows 7. Power consumption on Windows 2008 R2 Server with Flash was almost the same as with HTML5. <br />
<br />
<span style="font-size: large;">Flash power consumption</span><br />
<br />
This table shows difference between Table 4 and Table 3 which demonstrates saved energy when not using Flash. <br />
<br />
<table class="result"><caption>Table 5: Flash power consumption</caption><tbody>
<tr class="hheader"><th>System</th><th><div style="text-align: center;"><b>Pavg</b><b> [W]</b></div></th><th><b>Eavg [Wh]</b></th></tr>
<tr><td class="vheader">Fedora 15</td><td style="text-align: center;">3.2751</td><td>1.6373</td></tr>
<tr><td class="vheader">RHEL6</td><td>4.5413</td><td>2.2702</td></tr>
<tr><td class="vheader">Windows Server 2008 R2</td><td class="good">0.6839</td><td class="good">0.3419</td></tr>
<tr><td class="vheader">Windows 7</td><td>2.4314</td><td>1.2154</td></tr>
</tbody></table><br />
<span style="font-size: large;">Conclusion</span><br />
<br />
Windows has bigger power consumption in idle state than Linux based systems on our testing platform. There are no big differences between Windows and Linux when browsing web without Flash, but Windows needs less energy when Flash is used. If you need Flash only for services which supports also HTML5, you should definitely use HTML5 to save energy.<br />
<span style="font-size: medium;"></span>Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-2686333373458714151.post-30359305382548221502011-08-04T08:29:00.000-07:002011-11-24T05:40:57.210-08:00Comparison of HDD/SDD on Dell Latitude D620 running RHEL-6<style type="text/css">
<!--
table.result {border: 1px solid #000000; border-spacing: 0px; border-collapse: collapse; text-align: center; vertical-align: middle}
.hheader {border: 1px solid #000000; background-color: #cccccc; padding-left: 3px; padding-right: 3px}
.vheader {border: 1px solid #000000; background-color: #ccffff; text-align: left; padding-left: 3px; padding-right: 3px}
td.td {border: 1px solid #000000; padding-left: 3px; padding-right: 3px}
.good {background-color: #3deb3d}
.bad {background-color: #ff3333}
-->
</style><br />
<br />
Recently I got into my hands Kingston SSDnow V+ series 128GB SNVP325-S2/128GB and Dell Latitude D620 laptop that was equipped with Hitachi HTS721010G9SA00 HDD. So I prepared simple power consumption related comparison.<br />
<br />
I measured time and energy that was consumed for various tasks. All tasks were run three times and average values were counted. From the time and energy the average power consumption of the whole system was calculated. I measured HDD for various settings of accoustic management, R/W multiple sector transfer, and advanced power management level. On SSD most of these settings were not available and it only supported subset of advanced power management levels. I used Chroma 66202 ENERGY STAR/IEC 62301 compliant power meter (http://www.chromaate.com/product/detail.aspx?id=1593). Between measurements the I/O cache was flushed. During the measurement display dimming, screensaver and cron were disabled.<br />
<br />
In the table 1 there are results for RHEL-6 Kickstart provision, cold boot, kernel sources unpack (3 times in a row with cache flush), mock targeted kernel rebuild and 1 hour active idle test. In the table the results for HDD and SSD are compared with help of colours - green colour stands for better results and red colour for worse results.<br />
<br />
<table class="result"><caption>Table 1: Power consumption of HDD/SSD for various tasks.</caption><tbody>
<tr class="hheader"> <td class="td" colspan="2" rowspan="2" style="border: 3px solid rgb(0, 0, 0);"><b>Task</b></td> <td class="td" colspan="3" style="border: 3px solid rgb(0, 0, 0);"><b>HDD</b></td> <td class="td" colspan="3" style="border: 3px solid rgb(0, 0, 0);"><b>SSD</b></td> </tr>
<tr class="hheader"> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-left: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>t<br />
[s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Pavg<br />
[W]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>E<br />
[Wh]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>t<br />
[s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Pavg<br />
[W]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>E<br />
[Wh]</b></td> </tr>
<tr> <td class="vheader" colspan="2" style="border-left: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);"><b>Kickstart provision</b></td> <td class="td bad">854.00</td> <td class="td bad">41.20</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">9.774</td> <td class="td good">754.00</td> <td class="td good">39.83</td> <td class="td good" style="border-right: 3px solid rgb(0, 0, 0); padding-left: 3px;">8.342</td> </tr>
<tr> <td class="vheader" colspan="2" style="border-left: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);"><b>Boot</b></td> <td class="td bad">50.00</td> <td class="td bad">38.34</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">0.533</td> <td class="td good">40.00</td> <td class="td good">37.38</td> <td class="td good" style="border-right: 3px solid rgb(0, 0, 0);">0.415</td> </tr>
<tr> <td class="vheader" colspan="2" style="border-left: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);"><b>Kernel 2.6.32 unpack (3 times)</b></td> <td class="td bad">76.39</td> <td class="td bad">39.00</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">0.828</td> <td class="td good">65.83</td> <td class="td good">38.31</td> <td class="td good" style="border-right: 3px solid rgb(0, 0, 0);">0.701</td> </tr>
<tr> <td align="LEFT" bgcolor="#ccffff" class="vheader" colspan="2" height="16" style="border-color: rgb(0, 0, 0); border-style: solid; border-width: 1px 3px;"><b>Mock build kernel-2.6.32-79</b></td> <td align="CENTER" bgcolor="#ff3333" class="td bad" sdnum="1029;1033;0.00" sdval="8689,25" style="border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);">8689.25</td> <td align="CENTER" bgcolor="#ff3333" class="td bad" sdnum="1029;1033;0.00" sdval="42,78" style="border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);">42.78</td> <td align="CENTER" bgcolor="#ff3333" class="td bad" sdnum="1029;1033;0.000" sdval="103,257254166667" style="border-bottom: 1px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);">103.257</td> <td align="CENTER" bgcolor="#3deb3d" class="td good" sdnum="1029;1033;0.00" sdval="8083,51" style="border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);">8083.51</td> <td align="CENTER" bgcolor="#3deb3d" class="td good" sdnum="1029;1033;0.00" sdval="41,21" style="border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);">41.21</td> <td align="CENTER" bgcolor="#3deb3d" class="td good" sdnum="1029;1033;0.000" sdval="92,5337353055556" style="border-bottom: 1px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 1px solid rgb(0, 0, 0);">92.534</td> </tr>
<tr> <td class="vheader" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0); border-left: 3px solid rgb(0, 0, 0);"><b>Active idle for 1 hour</b></td> <td class="vheader" style="border-right: 3px solid rgb(0, 0, 0);">Advanced power management level: 128</td> <td class="td">3600.00</td> <td class="td bad">21.05</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">21.050</td> <td class="td">3600.00</td> <td class="td good">19.32</td> <td class="td good" style="border-right: 3px solid rgb(0, 0, 0);">19.320</td> </tr>
<tr> <td class="vheader" style="border-right: 3px solid rgb(0, 0, 0);">Advanced power management level: 255</td> <td class="td">3600.00</td> <td class="td bad">21.20</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">21.200</td> <td class="td">-</td> <td class="td">-</td> <td class="td" style="border-right: 3px solid rgb(0, 0, 0);">-</td> </tr>
<tr> <td class="vheader" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">Advanced power management level: 1</td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0);">3600.00</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">20.94</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">20.940</td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0);">3600.00</td> <td class="td good" style="border-bottom: 3px solid rgb(0, 0, 0);">19.32</td> <td class="td good" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">19.320</td> </tr>
</tbody></table><br />
From the table 1 it is apparent that for all measured tasks the SSD was better. Not only all tasks were finished in less time but also less energy was consumed.<br />
<br />
In the table 2 there are results for sequential read test. For this test the <i>hdparm -t</i> command was used. In this test the average read and peak read speeds in MB/s from the three runs were observed.<br />
<br />
<table class="result"><caption>Table 2: Power consumption/performance of HDD/SSD during sequential read.</caption> <tbody>
<tr class="hheader"> <td class="td" colspan="2" rowspan="2" style="border: 3px solid rgb(0, 0, 0);"><b>Task</b></td> <td colspan="5" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>HDD</b></td> <td colspan="5" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>SSD</b></td> </tr>
<tr class="hheader"> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>t<br />
[s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Pavg<br />
[W]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>E<br />
[Wh]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Average<br />
read<br />
[MB/s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Peak<br />
read<br />
[MB/s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>t<br />
[s]</b></td> <td clas="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Pavg<br />
[W]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>E<br />
[Wh]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Average<br />
read<br />
[MB/s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Peak<br />
read<br />
[MB/s]</b></td> </tr>
<tr> <td class="vheader" rowspan="2" style="border-bottom: 3px solid rgb(0, 0, 0); border-left: 3px solid rgb(0, 0, 0);"><b>Sequential read (hdparm -t)</b></td> <td class="vheader" style="border-right: 3px solid rgb(0, 0, 0);">Acoustic management: 254<br />
Advanced power management level: 128<br />
R/W multiple sector transfer: 8</td> <td class="td">18.53</td> <td class="td bad">26.00</td> <td class="td bad">0.134</td> <td class="td bad">39.17</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">43.06</td> <td class="td good" rowspan="2" style="border-bottom: 3px solid rgb(0, 0, 0);">18.31</td> <td class="td good" rowspan="2" style="border-bottom: 3px solid rgb(0, 0, 0);">21.23</td> <td class="td good" rowspan="2" style="border-bottom: 3px solid rgb(0, 0, 0);">0.108</td> <td class="td good" rowspan="2" style="border-bottom: 3px solid rgb(0, 0, 0);">115.90</td> <td class="td good" rowspan="2" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">115.97</td> </tr>
<tr> <td class="vheader" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">Acoustic management: 254<br />
Advanced power management level: 254<br />
R/W multiple sector transfer: 16</td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0);">18.34</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">25.39</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">0.129</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">48.23</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">48.26</td> </tr>
</tbody></table><br />
From the table 2 it is apparent that the SSD was again better in all observed parameters.<br />
<br />
In the table 3 there are results for random seek test. For this test the <i>seeker</i> utility was used. During this test the average seek time in ms was observed. Also the maximal acoustic noise level in dBA was measured during this test. The acoustic noise level numbers are only informal, because uncalibrated equipment was used. The measurement was done remotely in the office during night. The background noise level was measured to be about 30 dBA there.<br />
<br />
<table class="result"><caption>Table 3: Power consumption/performance of HDD/SSD during random seeks.</caption> <tbody>
<tr class="hheader"> <td class="td" colspan="2" rowspan="2" style="border: 3px solid rgb(0, 0, 0);"><b>Task</b></td> <td class="td" colspan="5" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>HDD</b></td> <td class="td" colspan="5" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>SSD</b></td> </tr>
<tr class="hheader"> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>t<br />
[s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Pavg<br />
[W]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>E<br />
[Wh]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Acoustic<br />
noise max<br />
[dBA]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Average<br />
seek<br />
[ms]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>t<br />
[s]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Pavg<br />
[W]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>E<br />
[Wh]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Acoustic<br />
noise max<br />
[dBA]</b></td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0); border-top: 3px solid rgb(0, 0, 0);"><b>Average<br />
seek<br />
[ms]</b></td> </tr>
<tr> <td class="vheader" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0); border-left: 3px solid rgb(0, 0, 0);"><b>Random seek</b></td> <td class="vheader" style="border-right: 3px solid rgb(0, 0, 0);">Acoustic management: 254<br />
Advanced power management level: 128<br />
R/W multiple sector transfer: 8</td> <td class="td">30.31</td> <td class="td bad">27.88</td> <td class="td bad">0.235</td> <td class="td bad">40</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">15.43</td> <td class="td" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0);">30.02</td> <td class="td good" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0);">22.82</td> <td class="td good" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0);">0.190</td> <td class="td good" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0);">30</td> <td class="td good" rowspan="3" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">0.25</td> </tr>
<tr> <td class="vheader" style="border-right: 3px solid rgb(0, 0, 0);">Acoustic management: 254<br />
Advanced power management level: 254<br />
R/W multiple sector transfer: 16</td> <td class="td">30.33</td> <td class="td bad">28.05</td> <td class="td bad">0.236</td> <td class="td bad">40</td> <td class="td bad" style="border-right: 3px solid rgb(0, 0, 0);">15.82</td> </tr>
<tr> <td class="vheader" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">Acoustic management: 128<br />
Advanced power management level: 128<br />
R/W multiple sector transfer: 8</td> <td class="td" style="border-bottom: 3px solid rgb(0, 0, 0);">29.34</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">27.89</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">0.227</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0);">37</td> <td class="td bad" style="border-bottom: 3px solid rgb(0, 0, 0); border-right: 3px solid rgb(0, 0, 0);">16.62</td> </tr>
</tbody></table><br />
In the table 3 you can see that the SSD was again better in all observed parameters.<br />
<br />
The SSD was better in all tests, but it is worth to note that it was quite a new SSD and really old laptop with old HDD. In case the up-to-date and higher class HDD would be available these results wouldn't be probably such single-valued. Also the empty SSD was used in the test thus the internal wear levelling algorithms were not probably in effect and was not able to negatively affect the results as it would do during long term real life usage.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com0tag:blogger.com,1999:blog-2686333373458714151.post-62424496342568556962011-08-04T07:14:00.000-07:002011-11-24T05:23:10.359-08:00F16 power management test day early noticeFedora 16 power management test day is planned to be be hold on 2011-09-29. This event will concentrate on testing how well various common power management operations work on range of systems. As this test day aims to test out existing functionality on a range of hardware, it's vital that we get as many testers as possible so we can find as many bugs as possible. Some of the test cases will be targeted to laptops, but everybody can attend and selectively run test cases that fits her/his need or HW capabilities. Every result will be highly welcome and will help us to make the power management in Fedora even better.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com0tag:blogger.com,1999:blog-2686333373458714151.post-76987553703337633582011-08-04T06:54:00.000-07:002011-11-24T05:23:36.035-08:00Power management guide for F15Fedora power management guide was updated to reflect all new features of F15. Currently the updated draft is available on: <a href="http://jskarvad.fedorapeople.org/doc/power-management-guide/">http://jskarvad.fedorapeople.org/doc/power-management-guide/</a> and it has been also sent to 'docs guys' for corrections. Hopefully it will be published soon on: <a href="http://docs.fedoraproject.org/en-US/">http://docs.fedoraproject.org/en-US/</a>.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com1tag:blogger.com,1999:blog-2686333373458714151.post-29433827983449364632011-08-04T04:26:00.000-07:002011-11-24T05:23:46.240-08:00WelcomeWelcome to Fedora/RHEL power management blog. We will present here power consumption measurement/benchmarking, announcements, news and tips related to power management in Fedora/RHEL. Stay tuned, more will come.Yardahttp://www.blogger.com/profile/02853164994296727284noreply@blogger.com1