none
Concurrency Visualizer: "Expected user stack but got another kernal stack event..."

    Allgemeine Diskussion

  • When running the Concurrency Visualizer, on a 64-bit TPL Dataflow prototype application, I get a message that starts out as in the title during the Event Parsing phase.  The message includes the request, "Please alert the dev team about this situation," so I am doing that.  If I ignore the message the process continues through Downloading PDBs and Resolving Symbols phases but emits an error during the Analysis phase: "Profiling failed for an unknown reason".  If I retry several times the first message does not always appear, but the last one always does.  This app runs flawlessly outside of the Concurrency Visualizer and, in fact, runs to completion during the CV runs.  I don't find a forum for performance analysis tools so I'm posting to the Dataflow forum.

    Virtual dev environment:

    .NET Framework 4.5 Beta v4.0.30319

    Visual Studio 11 Beta v11.0.50214.1 BETAREL

    Windows 7 Professional 64-bit SP1

    VMWare Player 4.0.1 build-528992 w/4 cores & 4GB RAM

    Host environment:

    Windows 7 Professional 64-bit SP1

    Dell Optiplex 790 / Core i7-2600 w/8GB RAM


    Rob

    Montag, 2. April 2012 20:48

Alle Antworten

  • Hi,

    Can you look in your temp directory(users\<name>\appdata\local\temp) and see if there is a file named ConcurrencyVisualizer-CVAnalysisService.<lots of numbers>.log  If so, are there any Errors in the log that contain callstacks or exception messages?

    The first error that you get is indicating that we recieved more than one kernel stack with the same timestamp as a user mode stack.  This was not expected but should not cause profiling to fail.  In the worst case when we merge the stacks the kernel portion could be incorrect depending on which one is chosen.

    Determining the reason for failed profiling should be prety straight forward given the log.

    To follow up on the "Expected User Stack..." issue please emai me at dcampbe@microsoft.com.

    Thanks,

    Drake




    Dienstag, 3. April 2012 22:09
  • Thanks, Drake.  I've replied to your private e-mail.


    Rob

    Mittwoch, 4. April 2012 12:52
  • Hi Rob,

    The log contained the following message: "Error: Throwing exception: Negative/Zero time duration not allowed".  Dataflow generates some informational level events when blocks process messages.  It also happens that in your case several of these events were generated within the same microsecond.  The Concurrency Visualizer is not correctly handeling this.  I will open a bug for this issue.

    In the meantime you can configure the Concurrency Visualizer to filter out the informational events.  To do this go to :  Analyze->ConcurrencyVisualizer->Advanced Settings…

    This will launch a dialog, go to the markers tab, select Tpl Dataflow, click on the icon that looks like a pencil to edit the settings.  This will launch another dialog.  There is a dropwodn menu labeled "Collect events with this importance level and greater." Change the value from normal to high then click Ok to close both dialogs.

    You should now be able to re-run your scenario and the report should open, you will just be missing the informational level events from dataflow.

    There is a blog post that covers how to do this at http://blogs.msdn.com/b/visualizeparallel/archive/2011/11/03/concurrency-visualizer-sdk-advanced-visualization-techniques.aspx, see the section on filtering.

    Thanks,

    Drake

    Freitag, 6. April 2012 18:20