<?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 The reason I am asking this in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157956#M6980</link>
    <description>&lt;P&gt;The reason I am asking this seemingly trivial, pedantic, useless trivia sounding matter is because the Linux kernel assumes the answer to that question is "Yes, the semantics are the same and emulation as stated is correct." And it has code which makes use of this.&lt;/P&gt;

&lt;P&gt;The statement "&lt;SPAN style="font-size: 12px;"&gt;&amp;nbsp;implementation for these latency events is similar on all microarchitectures" is exactly the problem. Which is why I am asking an extremely pedantic question. Your suggestion at a solution is frustrating because it tells me that you really did not look into my question; that approach is literally impossible to do to answer my question.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;The "GT" counters are not available on Haswell....hence, any suggestion involving their use is out of the solution. I do not own a skylake based machine...even if I did, whatever the results would be it would tell me that for Skylake specifically, these two counters were or were not counted with random load samples....which would be useful in telling Intel to make your descriptions more precises one way or the other. Whatever the result either the "GT" description would have to change from implying "exact counts" to explicitly stating "random samples", or the retired load latency event would have to change from "random loads" to "exact counts". Based on what I've been told so far, there are no other logical options left.&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;This is a question for your engineers....after you have found out the answer...could you please for the sake of all that is holy, correct, exact, precise and trustworthy update the bloody manual?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Thank you.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 05 Aug 2018 23:34:00 GMT</pubDate>
    <dc:creator>Chronus_Taizen</dc:creator>
    <dc:date>2018-08-05T23:34:00Z</dc:date>
    <item>
      <title>Load_Latency performance counter ambiguity</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157953#M6977</link>
      <description>&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;The May 2018 Combined SDM, Chapter 19, Section 2 and Section 6 list the performance counters for skylake and haswell, respectively.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Under section 2 you will find the following 8 events:&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Umask&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Number&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;CDH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEM_TRANS_RETIRED.LOAD_LATENCY_GT_2&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;CDH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEM_TRANS_RETIRED.LOAD_LATENCY_GT_4&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;CDH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEM_TRANS_RETIRED.LOAD_LATENCY_GT_8&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;CDH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEM_TRANS_RETIRED.LOAD_LATENCY_GT_256&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;CDH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEM_TRANS_RETIRED.LOAD_LATENCY_GT_512&lt;/P&gt;

&lt;P style="margin-bottom: 0px; padding-left: 60px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Their description reads: "Counts loads when the latency from first dispatch to completion is greater than &amp;lt;X&amp;gt; cycles." for the correspoding value of X; 2, 4, 8, etc. In particular, there is no indication in the description that these counters measure randomly sampled memory loads. In fact, as stated I would expect a precise count of these events up to skidding in perf record.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Under section 6, among others, you will find:&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Event&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Umask&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Number&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Event Mask Mnemonic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;CDH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 01H&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEM_TRANS_RETIRED.LOAD_LATENCY&amp;nbsp; Randomly sampled loads whose latency is above a user defined threshold. [Specify threshold in MSR 3FAH]&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;My question is: Can the "MEM_TRANS_RETIRED.LOAD_LATENCY" be used to emulate the former 8 performance counters showing up for Skylake, or are the semantics as stated in the description correct thus prohibiting this emulation by proxy?&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;I am aware that the Events and Umask are the same, but I am unsure if the implementation of these in hardware are consistent across haswell and skylake. I would like to get an official answer from Intel.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0);"&gt;Thank you.&lt;/P&gt;

&lt;P style="margin-bottom: 0px; border: 0px; font-size: 14px; font-family: intel-clear, arial, helvetica, &amp;quot;helvetica neue&amp;quot;, verdana, sans-serif; vertical-align: baseline; color: rgb(0, 0, 0); min-height: 8pt;"&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Jul 2018 00:23:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157953#M6977</guid>
      <dc:creator>Chronus_Taizen</dc:creator>
      <dc:date>2018-07-19T00:23:35Z</dc:date>
    </item>
    <item>
      <title>But seriously. an answer</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157954#M6978</link>
      <description>&lt;P&gt;But seriously. an answer would be nice.&lt;/P&gt;</description>
      <pubDate>Fri, 03 Aug 2018 04:15:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157954#M6978</guid>
      <dc:creator>Chronus_Taizen</dc:creator>
      <dc:date>2018-08-03T04:15:29Z</dc:date>
    </item>
    <item>
      <title>To my knowledge the</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157955#M6979</link>
      <description>&lt;P&gt;To my knowledge the implementation for these latency events is similar on all microarchitectures - they&amp;nbsp;randomly select loads to track.&lt;/P&gt;

&lt;P&gt;One simple way to check is to collect MEM_INST_RETIRED.ALL_LOADS_PS and MEM_TRANS_RETIRED.LOAD_LATENCY_GT_4&amp;nbsp;events at the same time. You should see that MEM_INST_RETIRED.ALL_LOADS_PS will have much lower count.&lt;/P&gt;</description>
      <pubDate>Fri, 03 Aug 2018 08:42:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157955#M6979</guid>
      <dc:creator>Dmitry_R_Intel1</dc:creator>
      <dc:date>2018-08-03T08:42:56Z</dc:date>
    </item>
    <item>
      <title>The reason I am asking this</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157956#M6980</link>
      <description>&lt;P&gt;The reason I am asking this seemingly trivial, pedantic, useless trivia sounding matter is because the Linux kernel assumes the answer to that question is "Yes, the semantics are the same and emulation as stated is correct." And it has code which makes use of this.&lt;/P&gt;

&lt;P&gt;The statement "&lt;SPAN style="font-size: 12px;"&gt;&amp;nbsp;implementation for these latency events is similar on all microarchitectures" is exactly the problem. Which is why I am asking an extremely pedantic question. Your suggestion at a solution is frustrating because it tells me that you really did not look into my question; that approach is literally impossible to do to answer my question.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;The "GT" counters are not available on Haswell....hence, any suggestion involving their use is out of the solution. I do not own a skylake based machine...even if I did, whatever the results would be it would tell me that for Skylake specifically, these two counters were or were not counted with random load samples....which would be useful in telling Intel to make your descriptions more precises one way or the other. Whatever the result either the "GT" description would have to change from implying "exact counts" to explicitly stating "random samples", or the retired load latency event would have to change from "random loads" to "exact counts". Based on what I've been told so far, there are no other logical options left.&amp;nbsp;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;This is a question for your engineers....after you have found out the answer...could you please for the sake of all that is holy, correct, exact, precise and trustworthy update the bloody manual?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Thank you.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 05 Aug 2018 23:34:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Load-Latency-performance-counter-ambiguity/m-p/1157956#M6980</guid>
      <dc:creator>Chronus_Taizen</dc:creator>
      <dc:date>2018-08-05T23:34:00Z</dc:date>
    </item>
  </channel>
</rss>

