<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic It is best to use the OS in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/DISABLE-turbo-boost/m-p/1070591#M5280</link>
    <description>&lt;P&gt;It is best to use the OS options to control frequency if they are available.&amp;nbsp;&amp;nbsp; On Linux systems this is usually via the "acpi-cpufreq" loadable kernel module and its associated files.&amp;nbsp;&amp;nbsp; I don't know if this existed as far back as Centos 5.10, but it is certainly supported in Centos 6 &amp;amp; 7.&lt;/P&gt;

&lt;P&gt;If the "acpi-cpufreq" module is loaded, then for each core (${P}) you want to execute these two commands:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;echo "userspace" &amp;gt;/sys/devices/system/cpu/cpu${P}/cpufreq/scaling_governor&lt;/P&gt;

	&lt;P&gt;echo [frequency_in_kHz] &amp;gt; /sys/devices/system/cpu/cpu${P}/cpufreq/scaling_setspeed&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;On some systems the BIOS retains control of the frequencies, in which case the "acpi-cpufreq" module will probably not be loaded and you will need to find the magic BIOS option to tell it to give frequency control back to the OS.&lt;/P&gt;</description>
    <pubDate>Fri, 12 Feb 2016 18:50:29 GMT</pubDate>
    <dc:creator>McCalpinJohn</dc:creator>
    <dc:date>2016-02-12T18:50:29Z</dc:date>
    <item>
      <title>DISABLE turbo boost</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/DISABLE-turbo-boost/m-p/1070590#M5279</link>
      <description>&lt;P&gt;Hi, All,&lt;/P&gt;

&lt;P&gt;first of all, I always write my own driver when I need to read something from the model-specify register and I am successfully read some PMU counters before, say for instruction retired, cache misses and so on.&lt;/P&gt;

&lt;P&gt;Recently I am conducting experiment using SPECCPU2006 benchmark and I notice the running time varies (larger than 10%) for different round. the program usually run faster iteration by iteration. I suspect that turbo boost may did the trick. In order to reproduce the same execution time, I need it to run without having freq changes. I did some search and noticed that by modify the register 0x1A0 from 0x850089 to 0x4000850089 can set the turbo boost off, in other word, set the bit 38 to 1 can disable turbo boost. So I first read the content from 0x1A0 and then set it to 0x4000850089 and write back. I am aware that I may need to do this for each core.&lt;/P&gt;

&lt;P&gt;after that, I re-read the value, I found:&lt;/P&gt;

&lt;P&gt;core0: 0x4000850089&lt;/P&gt;

&lt;P&gt;core1: 0x4000850089&lt;/P&gt;

&lt;P&gt;core2: 0x0&lt;/P&gt;

&lt;P&gt;core3: 0x4000850089&lt;/P&gt;

&lt;P&gt;and I test my benchmarks, it still run faster after iterations. (I pin the benchmark running on core0 using taskset -c 0 ./benchmark_script )&lt;/P&gt;

&lt;P&gt;So my question is: is it possible that the os can re-write the msr so I cannot turn off turbo boost forever? Am i wrong on modify the turbo boost.&lt;/P&gt;

&lt;P&gt;other thing is: any suggestion for the program execution time other than turbo boost? say smart cache technology? prefetcher? I am not expert on this side so any suggestion and idea are welcome&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;By the way, my machine is intel i7-920 (Nehelam) and os is linux centos5.10. I go into my bios and can only disable speedstep and it didn't have any turbo boost option for me to enable/disable in bios. And this cpu do have turbo boost feature in it.&lt;/P&gt;

&lt;P&gt;Thanks in advance.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Feb 2016 14:44:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/DISABLE-turbo-boost/m-p/1070590#M5279</guid>
      <dc:creator>Wei_K_</dc:creator>
      <dc:date>2016-02-12T14:44:33Z</dc:date>
    </item>
    <item>
      <title>It is best to use the OS</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/DISABLE-turbo-boost/m-p/1070591#M5280</link>
      <description>&lt;P&gt;It is best to use the OS options to control frequency if they are available.&amp;nbsp;&amp;nbsp; On Linux systems this is usually via the "acpi-cpufreq" loadable kernel module and its associated files.&amp;nbsp;&amp;nbsp; I don't know if this existed as far back as Centos 5.10, but it is certainly supported in Centos 6 &amp;amp; 7.&lt;/P&gt;

&lt;P&gt;If the "acpi-cpufreq" module is loaded, then for each core (${P}) you want to execute these two commands:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;echo "userspace" &amp;gt;/sys/devices/system/cpu/cpu${P}/cpufreq/scaling_governor&lt;/P&gt;

	&lt;P&gt;echo [frequency_in_kHz] &amp;gt; /sys/devices/system/cpu/cpu${P}/cpufreq/scaling_setspeed&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;On some systems the BIOS retains control of the frequencies, in which case the "acpi-cpufreq" module will probably not be loaded and you will need to find the magic BIOS option to tell it to give frequency control back to the OS.&lt;/P&gt;</description>
      <pubDate>Fri, 12 Feb 2016 18:50:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/DISABLE-turbo-boost/m-p/1070591#M5280</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2016-02-12T18:50:29Z</dc:date>
    </item>
  </channel>
</rss>

