Community
cancel
Showing results for 
Search instead for 
Did you mean: 
CWhit10
Beginner
144 Views

[vmlinux] [no call stack information]

Jump to solution

Hi,

Currently, I'm using Advanced Hotspots to analyze the executable file resulting from compiling C source code.

However, from the analysis, it showed that most the time was spent in [vmlinux]. And, there is no call stack information displayed when I double click the function [vmlinux] in the Summary window. I'd made link named "vmlinux" to vmlinux-3.13.0-48-generic, which is the debug-info needed.

FYI, my OS is Ubuntu 14.04.2 LTS Trusty Tahr.

 

Apart from that, I encounter 2 warnings when I run the analysis:

     1) Cannot locate debugging symbols for file '/lib/x86_64-linux-gnu/libgcc_s.so.1'.

     2) Cannot locate debugging symbols for file '/opt/intel/vtune_amplifier_xe_2015.1.0.367959/lib64/runtime/libittnotify_collector.so'

although I had included the following two paths into "Symbol Search" under "Project Properties":

     /opt/intel/vtune_amplifier_xe_2015.1.0.367959/lib64/runtime

     /lib/x86_64-linux-gnu

 

I would like to know why most of the time is spent on executing [vmlinux], view call stack information and also fix the problem of unable to locate debugging symbol.

Thank you.

 

0 Kudos
1 Solution
David_A_Intel1
Employee
144 Views

Hi Claudia:

Most third-party modules do NOT include symbol info, so you will always see those messages.  You can ignore them.  Unless you have source and can recompile the modules to include symbols information, you will not get call stacks or symbol info.

(It does not say it can't find the modules, it says "Cannot locate debugging symbols...".)

WRT the kernel module, the module must be uncompressed and match the running module.  When you say, "I'd made link named "vmlinux" to vmlinux-3.13.0-48-generic", are you saying you created a symbolic link to vmlinux-3.13.0-48-generic *and* that that module is the running kernel?  Or, is that the module you built, but you are not loading it as the kernel?

Finally, make sure you have checked "Collect call stacks" in the Advanced Hotspots configuration:

callstacks-advancedhotspots_0.PNG

View solution in original post

3 Replies
CWhit10
Beginner
144 Views

Sorry, I forgot to mention in the previous post, the .so files stated in the warnings do exist in the paths mentioned. I don't know why VTune couldn't locate them.

David_A_Intel1
Employee
145 Views

Hi Claudia:

Most third-party modules do NOT include symbol info, so you will always see those messages.  You can ignore them.  Unless you have source and can recompile the modules to include symbols information, you will not get call stacks or symbol info.

(It does not say it can't find the modules, it says "Cannot locate debugging symbols...".)

WRT the kernel module, the module must be uncompressed and match the running module.  When you say, "I'd made link named "vmlinux" to vmlinux-3.13.0-48-generic", are you saying you created a symbolic link to vmlinux-3.13.0-48-generic *and* that that module is the running kernel?  Or, is that the module you built, but you are not loading it as the kernel?

Finally, make sure you have checked "Collect call stacks" in the Advanced Hotspots configuration:

callstacks-advancedhotspots_0.PNG

View solution in original post

Denis_M_Intel2
Employee
144 Views

  Was there a message about vmlinux in the output? Normally VTune Amplifer should find vmlinux-3.13.0-48-generic in /boot if you are running 3.13.0-48-generic kernel. If it is located in another directory, it is better to add this directory to the Binary/Symbol paths instead of creating a link. You will need to refinalize result or re-collect data after updating the Search paths.

Please also check that you have permissions to read vmlinux-3.13.0-48-generic.

Reply