can the vtune get the call stack between two kernel module.

can the vtune get the call stack between two kernel module.

HI, all.        I use vtune to get the applicatin call stack between the kernel module , and see the call stack with the “function/call stack”                          

i found that the call stack can't  be tracked between two module. the call stack will be split to  two call stacks.

configuration:                                                    
CPU:Intel E5504 2.0G                                     
OS: Suse 11 Sp1                                          
GCC: (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973]  CC: (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973 

6 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

Executing thread has user mode and kernel mode stacks.I suppose that kernel mode stack will not be a much of interest to you  unless you would like to track call chain  for example of  printf function.

i have several kernel modules,and they create several kernel thread,the thread get data from other driver. so,my all stack is kernel mode stack.for some reasons,the stack can't from one kernel module. now ,the vtune can't get the call stack between two kernel module

Please check if your interest of kernel module has symbol info?

I suppose that you used advanced-hotspots analysis, such as -

amlpxe-cl  -collect advance-hotspots -knob collection-detail=stack-sampling -- application 

Note: PMU event-based sampling can collect stack info if you specify target application (process), if kernel module was used in this process, call stack info will be displayed; if kernel module was in other process, no call stack info 

in my kernel modules,there are only thread,no application (process),i specify the thread pid,the vtune will report fatal error:"Process whith the 'xxx' identifier is not found,specify another process and try attaching again"

> in my kernel modules,there are only thread,no application (process)

No. all modules should be belong to one or more processes (it could be your application process). Perhaps, your kernel module works as independent (service) process, and communicate with application process. Anyway, try to find out what process works in your kernel module, then try: 

amlpxe-cl  -collect advance-hotspots -knob collection-detail=stack-sampling -duration 120 -target-pid PID ; if your kernel module already is running and severed with your application

Did you 

Accedere per lasciare un commento.