<?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 Suggestions Needed for Finding a Locking/Waiting Problem using Hardware Sampling in Analyzers</title>
    <link>https://community.intel.com/t5/Analyzers/Suggestions-Needed-for-Finding-a-Locking-Waiting-Problem-using/m-p/762987#M3</link>
    <description>I have an application running on a Dual Xeon i9 with a total of 8 2-way HT cores for 16 concurrent threads of execution.&lt;BR /&gt;&lt;BR /&gt;My
 application is very complex, with on the order of 100 various types of 
concurrent threads being scheduled by the Linux scheduler.&lt;BR /&gt;&lt;BR /&gt;When 
run at full speed, it runs well for 20-30 minutes and then starts to 
degrade. It look as if there is a lock or a series of queued events 
which need to be cleared and are causing the machine to be mostly 
quiescent for 1-2 seconds. This happens periodically every 4-6 seconds.&lt;BR /&gt;&lt;BR /&gt;I
 tried a minimal locks-and-waits sampling, but even with the sampling 
paused, there was enough of a slowdown in the throughput of the system 
that it never got into the stall for 1-2 seconds state.&lt;BR /&gt;&lt;BR /&gt;When I 
run HW-based sampling, the stall behavior shows up. But, I do not know 
how to find out what is stalling from the HW-based sampling, since when 
it is stalled, there are no hardware events to sample. I could make 
some guesses based on what is not running (showing up in samples) during
 the stalls, but it is essentially everything, so this is problematic.&lt;BR /&gt;&lt;BR /&gt;Do you have any suggestions?&lt;BR /&gt;&lt;BR /&gt;One possibility is to use spin locks, which would show up as execution&lt;BR /&gt;at the PC of the spin code, but this is likely to distort the behavior&lt;BR /&gt;similar to what the locks-and-waits sampling did.&lt;BR /&gt;&lt;BR /&gt;Thank you for any suggestions,&lt;BR /&gt;&lt;BR /&gt;Todd&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Todd Bezenek&lt;BR /&gt;
Computer Architect / Performance Analyst&lt;BR /&gt;
bezenek@gmail.com</description>
    <pubDate>Thu, 14 Apr 2011 22:20:01 GMT</pubDate>
    <dc:creator>todd-bezenek</dc:creator>
    <dc:date>2011-04-14T22:20:01Z</dc:date>
    <item>
      <title>Suggestions Needed for Finding a Locking/Waiting Problem using Hardware Sampling</title>
      <link>https://community.intel.com/t5/Analyzers/Suggestions-Needed-for-Finding-a-Locking-Waiting-Problem-using/m-p/762987#M3</link>
      <description>I have an application running on a Dual Xeon i9 with a total of 8 2-way HT cores for 16 concurrent threads of execution.&lt;BR /&gt;&lt;BR /&gt;My
 application is very complex, with on the order of 100 various types of 
concurrent threads being scheduled by the Linux scheduler.&lt;BR /&gt;&lt;BR /&gt;When 
run at full speed, it runs well for 20-30 minutes and then starts to 
degrade. It look as if there is a lock or a series of queued events 
which need to be cleared and are causing the machine to be mostly 
quiescent for 1-2 seconds. This happens periodically every 4-6 seconds.&lt;BR /&gt;&lt;BR /&gt;I
 tried a minimal locks-and-waits sampling, but even with the sampling 
paused, there was enough of a slowdown in the throughput of the system 
that it never got into the stall for 1-2 seconds state.&lt;BR /&gt;&lt;BR /&gt;When I 
run HW-based sampling, the stall behavior shows up. But, I do not know 
how to find out what is stalling from the HW-based sampling, since when 
it is stalled, there are no hardware events to sample. I could make 
some guesses based on what is not running (showing up in samples) during
 the stalls, but it is essentially everything, so this is problematic.&lt;BR /&gt;&lt;BR /&gt;Do you have any suggestions?&lt;BR /&gt;&lt;BR /&gt;One possibility is to use spin locks, which would show up as execution&lt;BR /&gt;at the PC of the spin code, but this is likely to distort the behavior&lt;BR /&gt;similar to what the locks-and-waits sampling did.&lt;BR /&gt;&lt;BR /&gt;Thank you for any suggestions,&lt;BR /&gt;&lt;BR /&gt;Todd&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Todd Bezenek&lt;BR /&gt;
Computer Architect / Performance Analyst&lt;BR /&gt;
bezenek@gmail.com</description>
      <pubDate>Thu, 14 Apr 2011 22:20:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Suggestions-Needed-for-Finding-a-Locking-Waiting-Problem-using/m-p/762987#M3</guid>
      <dc:creator>todd-bezenek</dc:creator>
      <dc:date>2011-04-14T22:20:01Z</dc:date>
    </item>
    <item>
      <title>Suggestions Needed for Finding a Locking/Waiting Problem using</title>
      <link>https://community.intel.com/t5/Analyzers/Suggestions-Needed-for-Finding-a-Locking-Waiting-Problem-using/m-p/762988#M4</link>
      <description>Hi Todd,&lt;BR /&gt;&lt;BR /&gt;Assume that you are working on latest Update 2. &lt;BR /&gt;&lt;BR /&gt;Since you complicated application consumes system resource high, I suggest to use command line to profile. I want to know if the stall was caused by the tool, or application-self. So you can launch application manually and use command line to profile whole system (e.g. amplxe-cl -collect lightweight-hotspots -analyze-system -duration xxx. Thus, all applications in system will be profiled - not only for your app only)&lt;BR /&gt;&lt;BR /&gt;For LocksandWaits analysis, please try below: (avoid big overhead when monitoring in spin-locks)&lt;BR /&gt;amplxe-cl --collect locksandwaits -knob collect-spin-data=false-knob collect-signals=true -follow-child -- your_app your_args&lt;BR /&gt;&lt;BR /&gt;Hope it helps.&lt;BR /&gt;&lt;BR /&gt;Regards, Peter&lt;BR /&gt;</description>
      <pubDate>Fri, 15 Apr 2011 01:32:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Analyzers/Suggestions-Needed-for-Finding-a-Locking-Waiting-Problem-using/m-p/762988#M4</guid>
      <dc:creator>Peter_W_Intel</dc:creator>
      <dc:date>2011-04-15T01:32:49Z</dc:date>
    </item>
  </channel>
</rss>

