Q on Flat profiling

ntap faq ntapfaq at gmail.com
Wed Apr 15 10:30:39 UTC 2009


Hi,



I am doing flat profiling for custom kernel code on hardware

with multiple CPUs. Just wanted to verify if i am doing things correctly.



If your’e still interested, read on. The way I collect the gmon.* files is
by doing:



For each CPU [0..3] {

       #switch cpu by using sysctl….

       kgmon –r # reset

       kgmon –b # start

}



 (sleep for 1min/10mins and let the code do its job)



For each CPU [0..3] {

       #switch cpu by using sysctl….

       kgmon –h # stop

}



#dumps the gmon.* files which I make sense with by using gprof.



For 1 min delays, I get smooth , consistent sampling profiles:

*Sampling when profiling ios done for 60 seconds/1min*

gprof.out.0.4:granularity: each sample hit covers 16 byte(s) for 0.00% of
65.06 seconds
gprof.out.1.4:granularity: each sample hit covers 16 byte(s) for 0.00% of
65.02 seconds
gprof.out.2.4:granularity: each sample hit covers 16 byte(s) for 0.00% of
65.05 seconds
gprof.out.3.4:granularity: each sample hit covers 16 byte(s) for 0.00% of
65.12 seconds



It turns out that the sampling numbers are skewed once the sampling time
goes to 10mins…

*Sampling when profiling ios done for 600 seconds/10mins*

gprof.out.0:granularity: each sample hit covers 16 byte(s) for 0.00% of
304.74 seconds
gprof.out.1:granularity: each sample hit covers 16 byte(s) for 0.00% of
403.11 seconds
gprof.out.2granularity: each sample hit covers 16 byte(s) for 0.00% of
501.55 seconds
gprof.out.3:granularity: each sample hit covers 16 byte(s) for 0.00% of
206.47 seconds



No I cant fathom why… if you do have any idea why, I’d appreciate it.



Thanks

rohit


More information about the freebsd-performance mailing list