From: Maynard J. <may...@us...> - 2011-12-12 15:14:18
|
Tomer Yacoby wrote: > Thanks for the response, I've already added image-path with no success. What version of oprofile are you using? See other questions and comments below. -Maynard > I do the following: > ------------------------------------------------------- > -> insmod mytimertest.ko > -> opcontrol --reset > -> opcontrol --start --verbose > Parameters used: > SESSION_DIR /var/lib/oprofile > LOCK_FILE /var/lib/oprofile/lock > SAMPLES_DIR /var/lib/oprofile/samples > CURRENT_SAMPLES_DIR /var/lib/oprofile/samples/current > CPUTYPE mips/74K > BUF_SIZE default value > BUF_WATERSHED default value > CPU_BUF_SIZE default value > SEPARATE_LIB 0 > SEPARATE_KERNEL 0 > SEPARATE_THREAD 0 > SEPARATE_CPU 0 > CALLGRAPH 0 > VMLINUX /boot/vmlinux > KERNEL_RANGE > XENIMAGE none > XEN_RANGE > KERNEL_RANGE 80010000,803dd6b4 Avoid using the --kernel-range option unless you *know* there's a problem with oprofile's automatic determination of kernel range. From searching the list archive, I found that this option was added because, historically, there were some platforms where it was not possible to get the correct kernel range programmatically. So the intent of this option is really only to be used as a workaround for such problems. The --kernel-range option has been in existence since at least 2003, so we should probably consider eliminating it now. I'll post an RFC. > executing oprofiled --session-dir=/var/lib/oprofile --separate-lib=0 > -- separate-kernel=0 --separate-thread=0 --separate-cpu=0 > --events=CYCLES:0:0:50000:0:1:1, --vmlinux=/boot/vmlinux --kernel- > range=80010000,803dd6b4 --verbose=all Using the '--verbose' option can lead to lost or mis-attributed samples. Don't use it unless you need to collect debug information for a suspected oprofile problem. > Events: CYCLES:0:0:50000:0:1:1, > Using 2.6+ OProfile kernel interface. > kernel_start = 80010000, kernel_end = 803dd6b4 > Using log file /var/lib/oprofile/samples/oprofiled.log > Profiler running. > -> opcontrol --dump > -> opcontrol --shutdown > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit > mask) count 50000 > CYCLES:50000| > samples| %| > ------------------ > 267108 95.9426 vmlinux > 3421 1.2288 libc-2.11.1.so > 2405 0.8639 bash > 2356 0.8463 ld-2.11.1.so > 2004 0.7198 oprofiled > 639 0.2295 mytimertest Your summary report above indicates that 639 samples were taken for your mytimertest module, but when you generate the --symbols report below, opreport apparently is not able to correlate the sample addresses with any symbols in your module. Please take the steps I recommended above (i.e., no --kernel-range and no --verbose options), re-run the profile and try generating a new --symbols report. If you still don't see symbol information for your module, generate a verbose symbols report ('opreport --symbols --verbose=all'). This will generate a lot of output, so redirect opreport output to a file. Then look for references to your kernel module -- in particular, where symbol information is gathered up -- and make sure it looks correct. Re-post to the list if you still have problems. > 278 0.0999 busybox > 68 0.0244 ophelp > 49 0.0176 libreadline.so.5.2 > 47 0.0169 libm-2.11.1.so > 9 0.0032 libpopt.so.0.0.0 > 7 0.0025 libdl-2.11.1.so > 6 0.0022 libhistory.so.5.2 > 5 0.0018 libncurses.so.5.7 > 2 7.2e-04 libbfd-2.19.51.20090709.so > -> opreport --symbols --image-path=/tmp/ > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) > count 50000 > warning: could not check that the binary file /tmp/mytimertest.ko has > not been modified since the profile was taken. Results may be > inaccurate. > samples % app name symbol name > 208012 74.8894 vmlinux __pastwait > 38029 13.6914 vmlinux handle_IRQ_event > 3421 1.2316 libc-2.11.1.so /lib/libc-2.11.1.so > 2405 0.8659 bash /bin/bash > 2356 0.8482 ld-2.11.1.so /lib/ld-2.11.1.so > 2179 0.7845 vmlinux ring_buffer_consume > 2004 0.7215 oprofiled /usr/bin/oprofiled > 1975 0.7110 vmlinux cpu_idle > 1934 0.6963 vmlinux TimerCallback > . > . > . > ------------------------------------------------------------------------ > I get no symbol from mytimertest.ko. > My symbols are in interrupt context, but I don't think it should matter > because I see kernel symbols which is running in interrupt context > (handle_IRQ_event, TimerCallback). > > Thanks, > Tomer > > > -----Original Message----- > From: Maynard Johnson [mailto:may...@us...] > Sent: Thursday, December 08, 2011 4:58 PM > To: Tomer Yacoby > Cc: opr...@li... > Subject: Re: Symbols of Kernel Modules > > On 12/08/2011 2:43 AM, Tomer Yacoby wrote: >> Hi, >> >> I'm using oprofile on mips 74K, kernel 2.6.34, and I insert kernel > module with >> insmod. >> >> When I do 'opreport' I can see the module statistics, but when I want > to see the >> symbols with 'opreport -l' I don't get results for that module. >> >> Anyone have an idea what I'm doing wrong ? > See > http://oprofile.sourceforge.net/doc/results.html#locating-and-managing-b > inary-images. > Usually, something like the following will work: > opreport --symbols --image-path /lib/modules/`uname -r` > > -Maynard >> >> Thanks, >> >> Tom >> >> >> >> > ------------------------------------------------------------------------ > ------ >> Cloud Services Checklist: Pricing and Packaging Optimization >> This white paper is intended to serve as a reference, checklist and > point of >> discussion for anyone considering optimizing the pricing and packaging > model >> of a cloud services business. Read Now! >> http://www.accelacomm.com/jaw/sfnl/114/51491232/ >> >> >> >> _______________________________________________ >> oprofile-list mailing list >> opr...@li... >> https://lists.sourceforge.net/lists/listinfo/oprofile-list > |