From: Jayneel G. <ja...@cs...> - 2012-10-01 22:44:29
|
Hi, I was performing the sampling on DTLB_MISSES and CPU_CLK_UNHALTED with --separate=none. I got some samples for my application. let us say x. I later performed the same sampling with --separate=kernel to separate user level and kernel DTLB misses. let us say they are u and k for user and kernel misses respectively. I observed that x is much less than u+k and x was close to u. Does that mean that in general case, oprofile only profiles user level data when separate=none is used? For kernel samples to be included in the samples, separate=kernel needs to be used always? Jayneel |
From: Maynard J. <may...@us...> - 2012-10-02 16:04:46
|
On 10/01/2012 05:31 PM, Jayneel Gandhi wrote: > Hi, > > I was performing the sampling on DTLB_MISSES and CPU_CLK_UNHALTED with > --separate=none. I got some samples for my application. let us say x. With --separate=none, you cannot identify which kernel samples are associated with your application. The output of 'opreport --symbols' appears something like the following: samples % image name app name symbol name 41680 31.7826 libc-2.12.so libc-2.12.so vfprintf 13646 10.4056 libc-2.12.so libc-2.12.so _IO_default_xsputn 6750 5.1471 libc-2.12.so libc-2.12.so strchrnul 5106 3.8935 libc-2.12.so libc-2.12.so __strlen_sse42 4462 3.0038 navexlin.so navexlin.so /opt/Symantec/virusdefs/20121 4140 3.1569 BESClient BESClient /opt/BESClient/bin/BESClient 4125 3.1455 sprintft sprintft do_my_sprintf 840 0.6405 vmlinux vmlinux security_net_peersid_resolve --------------- In the report above, there are two applications (executables) that show up: BESClient and sprintft. Looking at the other samples (for libc and vmlinux), note that both the image name and app name columns are the same. Of course, "libc-2.12.so" and "vmlinux" are *not* app names. But since the profiling is done without any --separate options, oprofile cannot correlate library and kernel samples with their associated applications. To get that correlation -- for both kernel and library samples -- you need to run with "--separate=lib,kernel". Then you'd get a profile that would look something like this: samples % image name app name symbol name 41725 28.0893 libc-2.12.so sprintft vfprintf 13875 9.3407 libc-2.12.so sprintft _IO_default_xsputn 6927 4.6633 libc-2.12.so sprintft strchrnul 5165 3.4771 libc-2.12.so sprintft __strlen_sse42 4462 3.0038 navexlin.so rtvscand /opt/Symantec/virusdefs/20121 4026 2.7103 sprintft sprintft do_my_sprintf 412 2.2970 BESClient BESClient /opt/BESClient/bin/BESClient 1327 0.8933 vmlinux oprofiled security_net_peersid_resolve --------------- In the above report, you can now see there are actually 4 applications in the profile data: sprintft, rtvscand, BESClient, and oprofiled (oprofile's userspace daemon). So the vmlinux samples in the first report were actually related to the oprofiled program. I personally think "--separate=lib,kernel" should be the default, but for historical reasons, it's not. With the new 'operf' tool (included in oprofile 0.9.8), separation ("categorization" might be a better term) by library and kernel is the default. I hope this explanation helps clarify things. If you still have questions, please post them. -Maynard > > I later performed the same sampling with --separate=kernel to separate > user level and kernel DTLB misses. let us say they are u and k for user > and kernel misses respectively. > > I observed that x is much less than u+k and x was close to u. Does that > mean that in general case, oprofile only profiles user level data when > separate=none is used? For kernel samples to be included in the samples, > separate=kernel needs to be used always? > > Jayneel > > > > ------------------------------------------------------------------------------ > Got visibility? > Most devs has no idea what their production app looks like. > Find out how fast your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219671;13503038;y? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > oprofile-list mailing list > opr...@li... > https://lists.sourceforge.net/lists/listinfo/oprofile-list > |