<?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 Nash, you are welcome. in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922498#M1354</link>
    <description>&lt;P&gt;Nash, you are welcome.&lt;/P&gt;</description>
    <pubDate>Sun, 27 Jan 2013 20:30:04 GMT</pubDate>
    <dc:creator>Roman_D_Intel</dc:creator>
    <dc:date>2013-01-27T20:30:04Z</dc:date>
    <item>
      <title>Reprogramming Uncore Counters on the fly</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922493#M1349</link>
      <description>&lt;P&gt;I'm working on a project to log all DRAM metrics available for measuring in the Intel Memory Controller (full list of these can be&amp;nbsp;seen in the Intel Xeon Processor E5-2600 Product Family Uncore Performance Monitoring Guide, page 63, Table 2-64) on a Jaketown system. Ideally, this would work by programming the counters with a certain event code and umask, waiting an interval of a second or so, getting the delta between values, then reprogramming the uncore counters and starting all over again. I've been able to modify the method JKT_Uncore_Pci::program so that I can pass in the event code and umask as variables; however, the data I've been getting out suggests that I'm not actually reconfiguring the counters to count their intended metrics when calling the method (i.e. all of the data is similar in value). The values I've been getting for ECC_CORRECTABLE_ERRORS in particular seems fishy; it seems unlikely that I'd be getting in the neighborhood of ~2000 ECC events every second, especially for a server system otherwise at rest.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is it possible to reprogram these registers on the fly? Do they need to be frozen to be reprogrammed? I did not remove the code to freeze the registers from the method JKT_Uncore_Pci; however, there's always the possibility that they need to be locked by some other method.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Jan 2013 21:50:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922493#M1349</guid>
      <dc:creator>Nash_R_</dc:creator>
      <dc:date>2013-01-23T21:50:30Z</dc:date>
    </item>
    <item>
      <title>How do you access Uncore PMU</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922494#M1350</link>
      <description>&lt;P&gt;How do you access Uncore PMU?I mean do you use kernel mode driver or user mode API?&lt;/P&gt;
&lt;P&gt;I'm&amp;nbsp; writing simple driver which will access Uncore PMU with the help of inline assembly , my code only tries to read CBo Cn_MSR_PMON_CTRn registers.&lt;/P&gt;
&lt;P&gt;What do you mean by reprogramming on the fly?Without the freezing of Cn_MSR_PMON_CTLn bitfield?&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2013 07:02:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922494#M1350</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-01-24T07:02:16Z</dc:date>
    </item>
    <item>
      <title>Nash,</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922495#M1351</link>
      <description>&lt;P&gt;Nash,&lt;/P&gt;
&lt;P&gt;to reprogram iMC PMU you need to setup a new monitoring session following the steps described in section 2.1.1 of the manual you mentioned. This is implemented in&amp;nbsp;JKT_Uncore_Pci::program PCM function.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Roman&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2013 09:46:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922495#M1351</guid>
      <dc:creator>Roman_D_Intel</dc:creator>
      <dc:date>2013-01-24T09:46:36Z</dc:date>
    </item>
    <item>
      <title>Quote:Roman Dementiev (Intel)</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922496#M1352</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Roman Dementiev (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Nash,&lt;/P&gt;
&lt;P&gt;to reprogram iMC PMU you need to setup a new monitoring session following the steps described in section 2.1.1 of the manual you mentioned. This is implemented in&amp;nbsp;JKT_Uncore_Pci::program PCM function.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Roman&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Roman,&lt;/P&gt;
&lt;P&gt;Is it not possible to call JKT_uncore_pci::program in a fashion like this:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[cpp]&lt;/P&gt;
&lt;P&gt;PCM *m = PCM::getInstance();&lt;/P&gt;
&lt;P&gt;JKT_Uncore_Pci *uncore = new JKT_Uncore_Pci((uint32)0, m);&lt;/P&gt;
&lt;P&gt;uncore-&amp;gt;program(uint32 event, uint32 umask);&lt;/P&gt;
&lt;P&gt;[/cpp]&lt;/P&gt;
&lt;P&gt;I did a little tinkering under the hood so that it's only programming a single register (MC_CH_PCI_PMON_CTL0), and so the method JKT_Uncore_Pci::program method accepts variables for the event code and umask code. For some reason, however, it doesn't seem to be changing the output of the registers- the output seems to be in the same ballpark, regardless of what I pass into the program method. I'm sampling and taking a delta once per second, if that's any help.&lt;/P&gt;
&lt;P&gt;Thanks for your help,&lt;/P&gt;
&lt;P&gt;NR&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2013 16:39:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922496#M1352</guid>
      <dc:creator>Nash_R_</dc:creator>
      <dc:date>2013-01-24T16:39:45Z</dc:date>
    </item>
    <item>
      <title>Please disregard my last post</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922497#M1353</link>
      <description>&lt;P&gt;Please disregard my last post; I figured out where my error was. Turns out you need to be programming the correct socket to get any appreciable sort of change in the counters when calling the program method (which I wasn't doing). Thanks for your assistance!&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2013 18:21:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922497#M1353</guid>
      <dc:creator>Nash_R_</dc:creator>
      <dc:date>2013-01-24T18:21:35Z</dc:date>
    </item>
    <item>
      <title>Nash, you are welcome.</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922498#M1354</link>
      <description>&lt;P&gt;Nash, you are welcome.&lt;/P&gt;</description>
      <pubDate>Sun, 27 Jan 2013 20:30:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Reprogramming-Uncore-Counters-on-the-fly/m-p/922498#M1354</guid>
      <dc:creator>Roman_D_Intel</dc:creator>
      <dc:date>2013-01-27T20:30:04Z</dc:date>
    </item>
  </channel>
</rss>

