<unknown(s)> modules in PTU

<unknown(s)> modules in PTU

When I use PTU to do Basic-Statistical-Callgraph then I get symbols, source, everything.
When I use PTU to do anything else (branch analysis, basic data access profiling, basic sampling) then PTU can't find anything. More than 99% of the samples are in Module or . The remaining samples are in OS functions.
In all cases I'm running the same build of the same program.

This means that PTU is virtually useless to me. Is there anything I can do to fix this problem?

I'm running 64-bit Windows 7 with 24 GB RAM on an 8-core i7 970.

Version information is:

Package ID: N/A
Package Contents: Intel Performance Tuning Utility 4.0 Update 5
Build Number: 743
Build ID: 2011.03.31 13:17:58

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

It seem that all thingswent well on my side, I can run "basic sampling" without any problem.

I just want to verify:

1) Have you install the sampling driver properly?Go to '\bin' directory and run
'sepreg.exe -i'

2) To run sampling,your account or any user group it belongs to has to have Profile System
Performance user right. My account is in "administrator" group.

Regards, Peter

1) I did indeed run sepreg -i. Without that the statistical callgraph sampling doesn't work (IIRC).

2) I am running PTU (eclipse.exe) from an administrator command prompt. And, the statistical callgraph sampling works, which would also require profiling rights.

Note that the usage guide at http://software.intel.com/file/1953 talks repeatedly about the importance of running install_sep.exe. That should be updated to "sepreg.exe -i" -- it's quite confusing currently.

Two other points:

1) I am able to record ETW traces with xperf with no problems, so my account must have the right permissions.
2) If my account didn't have the right permissions then PTU would give an error message, right? Right?

To be clear, I'm getting samples, I'm getting modules and function names -- but only for OS code. My code is all in the module, which makes it useless.

So it is not the problem during data collecting. You are working on 64bit OS but all samples dropped in 32bit modules, and PTU can't interpret them...that was why it said module. Basic Statistical Call Graph has no such issue, since it doesn't collect samples. It inserted probes in function's entry and exit, so the probe will call PTU library to record performance data.

You may try command line to verify:
1. vtssrun.exe log -ec "CPU_CLK_UNHALTED.CORE":sa=200000 -- app ; log subdirectory will generated
2. vtssview log --convert
3. vtssview log -hot-stack ; can you see samples in expected module?

My opinion is to recompile your program in 64bit mode, so the problem will be disappeared.

Regards, Peter

Recompiling as 64-bit is not an option -- it would take us more time than can be justified. Is it documented somewhere that PTU does not support profiling of 32-bit applications on 64-bit Windows?

Even if we did recompile as 64-bit and successfully profile that would then tell us the performance characteristics of a 64-bit version of our software, but we will be shipping a 32-bit version, and the performance characteristics are likely to be different.

The Statistical Call Graph in PTU is *not* done by inserting probes. If it was done with probes then the results should indicate the number of *calls*. Instead they indicate the number of *samples*. Even the name 'statistical' implies a sampling profiler. This is discussed in:

I tried running:
vtssrun.exe log -ec "CPU_CLK_UNHALTED.CORE":sa=200000 -- c:\windows\notepad.exe

The result was the (unhelpful) error message:

Sampling collector options are incorrect; collection cannot continue.
Please try again.
Stop request has been processed..

I did a quick test of profiling 32-bit notepad.exe and 64-bit notepad.exe. With the 32-bit version of notepad I got 258 samples in and 70 samples in . With the 64-bit version of notepad I got none of those.

So, it looks like it really is true that there is no support for 32-bit processes on 64-bit Windows. Given that all sensible developers use 64-bit Windows that is roughly the same as saying that there is no support for profiling 32-bit processes.

Wow. I mean, wow. That's a huge gaping hole. And, this gaping hole in the capabilities of PTU does not appear to be documented, meaning that I wasted several hours trying to get it to work.


The user (of PTU) might discuss issues or new feature requests on this forum - http://software.intel.com/en-us/forums/intel-performance-tuning-utility/

Note that PTU isAlpha (experimental) product only,I recommend to use VTuneAmplifier XE 2011.

Regards, Peter

I'm surprised to hear that PTUis considered Alpha software. The version number (4.0, Update 5) suggests otherwise, but I guess it is described in some places as experimental.

Either way, if a scenario is not supported the polite thing for the software to do is to acknowledge that it cannot do itrather than presenting bad results. It is frustrating to realize that I spent several hours trying to get PTU to do something that it cannot do.

Leave a Comment

Please sign in to add a comment. Not a member? Join today