Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4995 Discussions

About events & sample difference

backyes
Beginner
506 Views
Hi All,
When using Vtune a mulit-thread process, I find that a unexpected thread in my process whose DTLB_MISSS.ANY samples
colum is 1 and DTLB_MISSES.ANY events is 715 with other colums is Zero . So why?
HOw to understand the samples VS events ? I consult the handbook ,it say the DTLB_MISSES.ANY is a event, Why the result show the colum like " DTLB_MISSES.ANY sample" and the value of DTLB_MISSES.ANY sample is 1 ??
Can someone give me a answer ,thanks a million.
-----backyes
0 Kudos
5 Replies
Peter_W_Intel
Employee
504 Views
Hi,

For simple answer, VTune Analyzer uses SAV (Sample After Value) to capture samples. That means the sampling data collector captures one sample when event count reaches SAV value (that says, statistical sampling).

So Event count = Samples * SAV, back to your result -
Sample = 1, means event count >= 1*SAV &event count < 2*SAV (modify theactivity to review SAV value ofDTLB_MISSS.ANY)
Other events, Sample = 0, means event didn't occur or event count < 1*SAV.

Knowmorein online help by searching string "Sample After Value".

Regards, Peter
0 Kudos
backyes
Beginner
504 Views

Thanks peter for reply,

According to the princple of Vtune, whethe Vtune exsits the following condition:

A process depends many library,which have been linked to output excutable file staticly. As default , some functions in library not called by the process when running, is sampled by Vtune .And the result shows DTLB_MISS is not zero while the other field is zero(the funciton is not been excuted but loaded ).

Because I find that ,one funtion is removed by Using /* ..*/ ,however Vtune show it and only the field of DTLB_MISS is non-zero . more amazing, the removed function located in one thread not expected(we did not create it.).

SO Why ?
0 Kudos
Peter_W_Intel
Employee
504 Views

The executable binary should incorporate all other libraries (MSVCRT90.dll, for example) when linking.

However only executed code area will be sampled. You said "And the result shows DTLB_MISS is not zero while the other field is zero(the function is not been executed but loaded )." - that is not true, the function should be executed then sampled! Samples of corresponding lines could be zeroforsome fieldbut other field is non-zero, sometime.

Iam pauzzlingwhy"comment-out" line was displayed on DTLS_MISScolumn as non-zero?Was it caused by the compiler that youused some optimizedoptions?

Iam very interested intest case. Could you please provide it?

Thanks, Peter

0 Kudos
backyes
Beginner
504 Views
Hi,
Thank you very much! About "Comment out" , I comment out the function call and retain the definition in the library. And I confirm that ,the fuction body is loaded to memory. But I also confirm it is not excuted. So why ?

Here it is not convienent to show the result snap picture. would you like give me you mail, My mail is backyes@mail.ustc.edu.cn. I come from USTC.
Thanks !
0 Kudos
Peter_W_Intel
Employee
504 Views

This ispretty good after our communicating via email, and knew that you got redundant thread(s) for the process.

I post the linker hereof the article - maybe others will meet this also.

cheer,
Peter

0 Kudos
Reply