Concurrency Visualizer: "Expected user stack but got another kernal stack event..."
-
2012年4月2日 下午 08:48
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
所有回覆
-
2012年4月3日 下午 10:09
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
- 已編輯 Drake Campbell 2012年4月4日 下午 10:26 Not the salutation I would like to convey
- 已編輯 Drake Campbell 2012年4月4日 下午 10:26
-
2012年4月4日 下午 12:52
Thanks, Drake. I've replied to your private e-mail.
Rob
-
2012年4月6日 下午 06:20
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

