<?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 Branch Trace Store on x64 Windows in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027715#M4200</link>
    <description>&lt;P&gt;I'm implementing BTS on x64 W7 and W8 as part of my academic research and I got a problem: I've set up everything (as far as I know) but I can't get being interrupted on BTS overflow. I have set up DS AREA and I can manually inspect the memory and check everything is fine ( BTS recorded until threshold). However, no interrupt is generated. I checked: APIC is set to edge and fixed, and its vector value is 254. I read IDTR and set IDT[254] to point my interrupt routine. BTINT is set on DEBUGCTL. Did I forget something ? Could anyone of you experienced with Windows implementation help me ? Besides, Are there any implementation piece available ? I found some on Linux, but none on Windows. Thanks in advance, Marcus&lt;/P&gt;

&lt;P&gt;Edit: I left a question on Microsoft's Forums but they aren't sure about Intel's things.&lt;/P&gt;</description>
    <pubDate>Tue, 15 Sep 2015 17:33:24 GMT</pubDate>
    <dc:creator>Marcus_B_</dc:creator>
    <dc:date>2015-09-15T17:33:24Z</dc:date>
    <item>
      <title>Branch Trace Store on x64 Windows</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027715#M4200</link>
      <description>&lt;P&gt;I'm implementing BTS on x64 W7 and W8 as part of my academic research and I got a problem: I've set up everything (as far as I know) but I can't get being interrupted on BTS overflow. I have set up DS AREA and I can manually inspect the memory and check everything is fine ( BTS recorded until threshold). However, no interrupt is generated. I checked: APIC is set to edge and fixed, and its vector value is 254. I read IDTR and set IDT[254] to point my interrupt routine. BTINT is set on DEBUGCTL. Did I forget something ? Could anyone of you experienced with Windows implementation help me ? Besides, Are there any implementation piece available ? I found some on Linux, but none on Windows. Thanks in advance, Marcus&lt;/P&gt;

&lt;P&gt;Edit: I left a question on Microsoft's Forums but they aren't sure about Intel's things.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2015 17:33:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027715#M4200</guid>
      <dc:creator>Marcus_B_</dc:creator>
      <dc:date>2015-09-15T17:33:24Z</dc:date>
    </item>
    <item>
      <title>Well, since I asked such</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027716#M4201</link>
      <description>Well, since I asked such question I did a great effort on developing my implementation. Currently I developed a new device driver and handled PnP issues for registering a interrupt. However, I am still not sure about how to perform such registration. APIC LVT [254] is a windows used IRQ. I really don't know if I should pretend to have a message interrupt or any other approach.

I'm sure you can help me since Intel Vtune makes use of such BTS capabilites on Windows. 
If I asked on a wrong forum section, please move to an appropriated one.

Thanks in advance,

Marcus</description>
      <pubDate>Sat, 26 Sep 2015 17:38:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027716#M4201</guid>
      <dc:creator>Marcus_B_</dc:creator>
      <dc:date>2015-09-26T17:38:21Z</dc:date>
    </item>
    <item>
      <title>My current doubt is how to</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027717#M4202</link>
      <description>My current doubt is how to register the correct IRQ. I can't set up 254 IRQ once it is already in use by the system. I can register another number, however I don't know how to redirect it. Any Ideia ?</description>
      <pubDate>Tue, 29 Sep 2015 16:59:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027717#M4202</guid>
      <dc:creator>Marcus_B_</dc:creator>
      <dc:date>2015-09-29T16:59:06Z</dc:date>
    </item>
    <item>
      <title>perhaps you can find similar</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027718#M4203</link>
      <description>&lt;P&gt;perhaps you can find similar situations in some open source porject to learn/practice the necessary programming mechanics dealing with setting up overflow interrupt caused by an buffer overflow condition. A proling tool project supporting sample-after mode of performance counter data gathering could provide the detail mechanics: buffer overflow -&amp;gt; counter overflow, BTINT in debugctl -&amp;gt; INT in the perfevtsel, etc..&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Sep 2015 22:01:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027718#M4203</guid>
      <dc:creator>SHIH_K_Intel</dc:creator>
      <dc:date>2015-09-29T22:01:03Z</dc:date>
    </item>
    <item>
      <title>I checked linux</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027719#M4204</link>
      <description>I checked linux implementation. I was able to handle interruptions both by using request_irq on a shared APIC entry, either by using NMI interruptions.
However, I need that on Windows environment.
I tried to register a shared IRQ but windows returns error 12 "This device cannot find enough free resources"
I tried to change APIC to NMI and register a NMI callback, but nothing happens.

Any ideias ?</description>
      <pubDate>Thu, 08 Oct 2015 21:59:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027719#M4204</guid>
      <dc:creator>Marcus_B_</dc:creator>
      <dc:date>2015-10-08T21:59:22Z</dc:date>
    </item>
    <item>
      <title>I finally registered my ISR</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027720#M4205</link>
      <description>I finally registered my ISR routine, but I am not being interrupted. I am looking to see if my configuration is correct.
I set DS MSR with the BTS structure, and I checked: addresses are correctly written.
I set DEBUGCTL MSR with BTS, BTINT and LBR flags. Is is enough to generate the interruption ?
Should I set something more, like MSR_PERF_GLOBAL MSR or other ?

Thanks,

Marcus</description>
      <pubDate>Tue, 13 Oct 2015 16:22:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Branch-Trace-Store-on-x64-Windows/m-p/1027720#M4205</guid>
      <dc:creator>Marcus_B_</dc:creator>
      <dc:date>2015-10-13T16:22:32Z</dc:date>
    </item>
  </channel>
</rss>

