From: Tomer Y. <tom...@br...> - 2011-12-08 08:56:09
|
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 ? Thanks, Tom |
From: Maynard J. <may...@us...> - 2011-12-08 14:57:50
|
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-binary-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 |
From: Tomer Y. <tom...@br...> - 2011-12-11 08:00:14
|
Thanks for the response, I've already added image-path with no success. 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 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 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 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 |
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 > |
From: Tomer Y. <tom...@br...> - 2011-12-14 15:03:52
|
> Hi, > > 1. I'm using oprofile version 0.9.6 with kernel 2.6.34. > > 2. The --kernel-range option in the opcontrol command seems to be > mandatory. > I get the following error: > -> opcontrol --kernel-range=none > -> opcontrol --start > Using 2.6+ OProfile kernel interface. > error: mis-parsed kernel range: 0-0 > > 3. I did again: > -> insmod /tmp/mytimertest.ko > -> opcontrol --reset > -> opcontrol --kernel-range=80010000,8053cbf0 > -> opcontrol --start > -> opcontrol --dump > -> opcontrol -h > -> opreport > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit > mask) count 100000 > CYCLES:100000| > samples| %| > ------------------ > 125453 95.4356 vmlinux > 1767 1.3442 libc-2.11.1.so > 1225 0.9319 ld-2.11.1.so > 1104 0.8398 bash > 1018 0.7744 mytimertest > 661 0.5028 oprofiled > 145 0.1103 busybox > 37 0.0281 ophelp > 24 0.0183 libm-2.11.1.so > 11 0.0084 libreadline.so.5.2 > 3 0.0023 libncurses.so.5.7 > 2 0.0015 libtinfo.so.5.7 > 2 0.0015 libbfd-2.19.51.20090709.so > 1 7.6e-04 libdl-2.11.1.so > -> opreport --symbols --verbose=all > /tmp/rd1.txt > > 4. In the rd1.txt file I have the following lines: > Archive: > Matched sample files: 14 > > /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti > mertest/CYCLES.100000.0.all.all.all > > /var/lib/oprofile/samples/current/{root}/bin/bash/{dep}/{root}/bin/bas > h/CYCLES.100000.0.all.all.all > > /var/lib/oprofile/samples/current/{root}/bin/busybox/{dep}/{root}/bin/ > busybox/CYCLES.100000.0.all.all.all > > /var/lib/oprofile/samples/current/{root}/boot/vmlinux/{dep}/{root}/boo > t/vmlinux/CYCLES.100000.0.all.all.all > . > . > . > tid: all > cpu: all > profiles_set #0: > image: /mytimertest > profile_sample_files #0: > sample_filename: > /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti > mertest/CYCLES.100000.0.all.all.all > callgraph filenames: > profiles_set #1: > image: /bin/bash > . > . > . > symbol /lib/libtinfo.so.5.7, value 0 > start 0, end 1cf30 > op_bfd ctor for /tmp/mytimertest.ko > bfd_info::get_symbols() for /tmp/mytimertest.ko > bfd_get_symtab_upper_bound: 284 > bfd_canonicalize_symtab: 70 > number of symbols before filtering 1 > number of symbols now 1 > start_offset is now 60 > symbol /mytimertest, value 0 > start 0, end 7a00 > op_bfd ctor for /usr/bin/ophelp > > 4. As you can see, a sample file is produces for this module and it's > not empty (few KB's). > > 5. Still I don't get the kernel module symbols. > > Thanks again, > Tomer > -----Original Message----- From: Maynard Johnson [mailto:may...@us...] Sent: Monday, December 12, 2011 5:10 PM To: Tomer Yacoby Cc: opr...@li... Subject: Re: Symbols of Kernel Modules 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 > |
From: Maynard J. <may...@us...> - 2011-12-14 17:14:38
|
Tomer Yacoby wrote: >> Hi, >> >> 1. I'm using oprofile version 0.9.6 with kernel 2.6.34. >> >> 2. The --kernel-range option in the opcontrol command seems to be >> mandatory. >> I get the following error: >> -> opcontrol --kernel-range=none ^-- 'none' is not a valid range, which is why you get the mis-parsed kernel message below. Unfortunately, there is nothing you can do via opcontrol to clear out a previously-specified kernel-range. Edit the /root/.oprofile/daemonrc file and remove the KERNEL_RANGE line. Then omit the --kernel-range option when you use opcontrol. >> -> opcontrol --start >> Using 2.6+ OProfile kernel interface. >> error: mis-parsed kernel range: 0-0 >> >> 3. I did again: >> -> insmod /tmp/mytimertest.ko >> -> opcontrol --reset >> -> opcontrol --kernel-range=80010000,8053cbf0 >> -> opcontrol --start >> -> opcontrol --dump >> -> opcontrol -h >> -> opreport >> CPU: MIPS 74K, speed 0 MHz (estimated) >> Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit >> mask) count 100000 >> CYCLES:100000| >> samples| %| >> ------------------ >> 125453 95.4356 vmlinux >> 1767 1.3442 libc-2.11.1.so >> 1225 0.9319 ld-2.11.1.so >> 1104 0.8398 bash >> 1018 0.7744 mytimertest >> 661 0.5028 oprofiled >> 145 0.1103 busybox >> 37 0.0281 ophelp >> 24 0.0183 libm-2.11.1.so >> 11 0.0084 libreadline.so.5.2 >> 3 0.0023 libncurses.so.5.7 >> 2 0.0015 libtinfo.so.5.7 >> 2 0.0015 libbfd-2.19.51.20090709.so >> 1 7.6e-04 libdl-2.11.1.so >> -> opreport --symbols --verbose=all > /tmp/rd1.txt Maybe this was just a typo in your note, but remember you need to pass "--image-path=/tmp". Based on the above output, the number of samples for mytimertest is very few compared to the total, so the symbol output for that module will be way down in the report. I see from the output below that no symbols are found for mytimertest. Are you doing something to strip symbol information from the file? Please do 'objdump -x' of mytimertest.ko to a file and attach that file to your reply. -Maynard >> >> 4. In the rd1.txt file I have the following lines: >> Archive: >> Matched sample files: 14 >> >> /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >> mertest/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/bin/bash/{dep}/{root}/bin/bas >> h/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/bin/busybox/{dep}/{root}/bin/ >> busybox/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/boot/vmlinux/{dep}/{root}/boo >> t/vmlinux/CYCLES.100000.0.all.all.all >> . >> . >> . >> tid: all >> cpu: all >> profiles_set #0: >> image: /mytimertest >> profile_sample_files #0: >> sample_filename: >> /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >> mertest/CYCLES.100000.0.all.all.all >> callgraph filenames: >> profiles_set #1: >> image: /bin/bash >> . >> . >> . >> symbol /lib/libtinfo.so.5.7, value 0 >> start 0, end 1cf30 >> op_bfd ctor for /tmp/mytimertest.ko >> bfd_info::get_symbols() for /tmp/mytimertest.ko >> bfd_get_symtab_upper_bound: 284 >> bfd_canonicalize_symtab: 70 >> number of symbols before filtering 1 >> number of symbols now 1 >> start_offset is now 60 >> symbol /mytimertest, value 0 >> start 0, end 7a00 >> op_bfd ctor for /usr/bin/ophelp >> >> 4. As you can see, a sample file is produces for this module and it's >> not empty (few KB's). >> >> 5. Still I don't get the kernel module symbols. >> >> Thanks again, >> Tomer >> > > -----Original Message----- > From: Maynard Johnson [mailto:may...@us...] > Sent: Monday, December 12, 2011 5:10 PM > To: Tomer Yacoby > Cc: opr...@li... > Subject: Re: Symbols of Kernel Modules > > 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 >> > |
From: Tomer Y. <tom...@br...> - 2011-12-18 10:57:31
Attachments:
dump.txt
|
There is still no change. I omitted the KERNEL_RANGE line in the daemonrc file, still don't get the module symbols statistics. Attached the 'objdump -x' file of the kernel module mytimertest.ko. Please note that when I'm doing 'opreport -l' I get the statistics for mytimertest module but not for its symbols. -> opreport -l warning: /mytimertest could not be found. CPU: MIPS 74K, speed 0 MHz (estimated) Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) count 100000 samples % app name symbol name 133996 49.7814 vmlinux handle_IRQ_event 92148 34.2343 vmlinux __pastwait 6293 2.3379 mytimertest /mytimertest 6128 2.2766 libc-2.11.1.so /lib/libc-2.11.1.so 5244 1.9482 vmlinux bl_lilac_hw_timer_isr 4295 1.5957 ld-2.11.1.so /lib/ld-2.11.1.so . . . But when I'm adding image path I get no statistics for the module at all. I get warning but from what I've understood it shouldn't affect the samples. The date and time of the files looks OK. -> opreport -l --image-path=/tmp/ CPU: MIPS 74K, speed 0 MHz (estimated) Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) count 100000 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 133996 50.9731 vmlinux handle_IRQ_event 92148 35.0538 vmlinux __pastwait 6128 2.3311 libc-2.11.1.so /lib/libc-2.11.1.so 5244 1.9949 vmlinux bl_lilac_hw_timer_isr 4295 1.6339 ld-2.11.1.so /lib/ld-2.11.1.so . . . Thanks, Tomer -----Original Message----- From: Maynard Johnson [mailto:may...@us...] Sent: Wednesday, December 14, 2011 7:14 PM To: Tomer Yacoby Cc: opr...@li... Subject: Re: Symbols of Kernel Modules Tomer Yacoby wrote: >> Hi, >> >> 1. I'm using oprofile version 0.9.6 with kernel 2.6.34. >> >> 2. The --kernel-range option in the opcontrol command seems to be >> mandatory. >> I get the following error: >> -> opcontrol --kernel-range=none ^-- 'none' is not a valid range, which is why you get the mis-parsed kernel message below. Unfortunately, there is nothing you can do via opcontrol to clear out a previously-specified kernel-range. Edit the /root/.oprofile/daemonrc file and remove the KERNEL_RANGE line. Then omit the --kernel-range option when you use opcontrol. >> -> opcontrol --start >> Using 2.6+ OProfile kernel interface. >> error: mis-parsed kernel range: 0-0 >> >> 3. I did again: >> -> insmod /tmp/mytimertest.ko >> -> opcontrol --reset >> -> opcontrol --kernel-range=80010000,8053cbf0 >> -> opcontrol --start >> -> opcontrol --dump >> -> opcontrol -h >> -> opreport >> CPU: MIPS 74K, speed 0 MHz (estimated) >> Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit >> mask) count 100000 >> CYCLES:100000| >> samples| %| >> ------------------ >> 125453 95.4356 vmlinux >> 1767 1.3442 libc-2.11.1.so >> 1225 0.9319 ld-2.11.1.so >> 1104 0.8398 bash >> 1018 0.7744 mytimertest >> 661 0.5028 oprofiled >> 145 0.1103 busybox >> 37 0.0281 ophelp >> 24 0.0183 libm-2.11.1.so >> 11 0.0084 libreadline.so.5.2 >> 3 0.0023 libncurses.so.5.7 >> 2 0.0015 libtinfo.so.5.7 >> 2 0.0015 libbfd-2.19.51.20090709.so >> 1 7.6e-04 libdl-2.11.1.so >> -> opreport --symbols --verbose=all > /tmp/rd1.txt Maybe this was just a typo in your note, but remember you need to pass "--image-path=/tmp". Based on the above output, the number of samples for mytimertest is very few compared to the total, so the symbol output for that module will be way down in the report. I see from the output below that no symbols are found for mytimertest. Are you doing something to strip symbol information from the file? Please do 'objdump -x' of mytimertest.ko to a file and attach that file to your reply. -Maynard >> >> 4. In the rd1.txt file I have the following lines: >> Archive: >> Matched sample files: 14 >> >> /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >> mertest/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/bin/bash/{dep}/{root}/bin/bas >> h/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/bin/busybox/{dep}/{root}/bin/ >> busybox/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/boot/vmlinux/{dep}/{root}/boo >> t/vmlinux/CYCLES.100000.0.all.all.all >> . >> . >> . >> tid: all >> cpu: all >> profiles_set #0: >> image: /mytimertest >> profile_sample_files #0: >> sample_filename: >> /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >> mertest/CYCLES.100000.0.all.all.all >> callgraph filenames: >> profiles_set #1: >> image: /bin/bash >> . >> . >> . >> symbol /lib/libtinfo.so.5.7, value 0 >> start 0, end 1cf30 >> op_bfd ctor for /tmp/mytimertest.ko >> bfd_info::get_symbols() for /tmp/mytimertest.ko >> bfd_get_symtab_upper_bound: 284 >> bfd_canonicalize_symtab: 70 >> number of symbols before filtering 1 >> number of symbols now 1 >> start_offset is now 60 >> symbol /mytimertest, value 0 >> start 0, end 7a00 >> op_bfd ctor for /usr/bin/ophelp >> >> 4. As you can see, a sample file is produces for this module and it's >> not empty (few KB's). >> >> 5. Still I don't get the kernel module symbols. >> >> Thanks again, >> Tomer >> > > -----Original Message----- > From: Maynard Johnson [mailto:may...@us...] > Sent: Monday, December 12, 2011 5:10 PM > To: Tomer Yacoby > Cc: opr...@li... > Subject: Re: Symbols of Kernel Modules > > 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 >> > |
From: Maynard J. <may...@us...> - 2011-12-19 18:41:16
|
On 12/18/2011 04:57 AM, Tomer Yacoby wrote: > There is still no change. > I omitted the KERNEL_RANGE line in the daemonrc file, still don't get > the module symbols statistics. I didn't expect that change to make a difference in seeing module symbol info. I just made the recommendation to eliminate the kernel-range option since it's not necessary and incorrect specification could lead to problems down the road. > Attached the 'objdump -x' file of the kernel module mytimertest.ko. > Please note that when I'm doing 'opreport -l' I get the statistics for > mytimertest module but not for its symbols. This is a key piece of information. What this means is that, without the --image-path, opreport will not even attempt to find the binary file for your module, so it simply attributes ALL samples for the module to a pseudo symbol it creates for the module -- and the symbol name is the pathname of the module. In this case, we don't have a full pathname -- only a basename -- so the symbol name in your case is "/mytimertest". But when you pass --image-path, opreport finds your module and inspects it for symbol information, finding none. Typically, it should again attribute samples to a pseudo symbol named after the pathname of the module. I don't know why that's not happening in this case, but instead, the samples are just being discarded. It may have something to do with the VMAs of the sampled addresses and the VMA start and end for your module. The key thing is that your module does not seem to have necessary symbol information. Note the information in the SYMBOL TABLE . . . 00000000 g F .text.timer0_handler 0000001c timer0_handler 00000000 g F .init.text 00000294 init_module 00000000 g F .text.timer2_handler 00000008 timer2_handler 00000000 g F .text.timer1_handler 00000008 timer1_handler 00000000 g F .text.timer3_handler 00000008 timer3_handler I believe the first column being all zeros means that no symbol size is provided, so opreport has no way to determine start and end VMAs for your module's functions. Compare this output to 'objdump -x' of other modules on your system. Is your build process somehow stripping some symbol information from the module? -Maynard > -> opreport -l > warning: /mytimertest could not be found. > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) > count 100000 > samples % app name symbol name > 133996 49.7814 vmlinux handle_IRQ_event > 92148 34.2343 vmlinux __pastwait > 6293 2.3379 mytimertest /mytimertest > 6128 2.2766 libc-2.11.1.so /lib/libc-2.11.1.so > 5244 1.9482 vmlinux bl_lilac_hw_timer_isr > 4295 1.5957 ld-2.11.1.so /lib/ld-2.11.1.so > . > . > . > > But when I'm adding image path I get no statistics for the module at > all. > I get warning but from what I've understood it shouldn't affect the > samples. The date and time of the files looks OK. > -> opreport -l --image-path=/tmp/ > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) > count 100000 > 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 > 133996 50.9731 vmlinux handle_IRQ_event > 92148 35.0538 vmlinux __pastwait > 6128 2.3311 libc-2.11.1.so /lib/libc-2.11.1.so > 5244 1.9949 vmlinux bl_lilac_hw_timer_isr > 4295 1.6339 ld-2.11.1.so /lib/ld-2.11.1.so > . > . > . > > Thanks, > Tomer > > > > -----Original Message----- > From: Maynard Johnson [mailto:may...@us...] > Sent: Wednesday, December 14, 2011 7:14 PM > To: Tomer Yacoby > Cc: opr...@li... > Subject: Re: Symbols of Kernel Modules > > Tomer Yacoby wrote: >>> Hi, >>> >>> 1. I'm using oprofile version 0.9.6 with kernel 2.6.34. >>> >>> 2. The --kernel-range option in the opcontrol command seems to be >>> mandatory. >>> I get the following error: >>> -> opcontrol --kernel-range=none > ^-- 'none' is not a valid range, > which is why you get the mis-parsed kernel message below. > Unfortunately, there is nothing you can do via opcontrol to clear out a > previously-specified kernel-range. Edit the /root/.oprofile/daemonrc > file and remove the KERNEL_RANGE line. Then omit the --kernel-range > option when you use opcontrol. >>> -> opcontrol --start >>> Using 2.6+ OProfile kernel interface. >>> error: mis-parsed kernel range: 0-0 >>> >>> 3. I did again: >>> -> insmod /tmp/mytimertest.ko >>> -> opcontrol --reset >>> -> opcontrol --kernel-range=80010000,8053cbf0 >>> -> opcontrol --start >>> -> opcontrol --dump >>> -> opcontrol -h >>> -> opreport >>> CPU: MIPS 74K, speed 0 MHz (estimated) >>> Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit >>> mask) count 100000 >>> CYCLES:100000| >>> samples| %| >>> ------------------ >>> 125453 95.4356 vmlinux >>> 1767 1.3442 libc-2.11.1.so >>> 1225 0.9319 ld-2.11.1.so >>> 1104 0.8398 bash >>> 1018 0.7744 mytimertest >>> 661 0.5028 oprofiled >>> 145 0.1103 busybox >>> 37 0.0281 ophelp >>> 24 0.0183 libm-2.11.1.so >>> 11 0.0084 libreadline.so.5.2 >>> 3 0.0023 libncurses.so.5.7 >>> 2 0.0015 libtinfo.so.5.7 >>> 2 0.0015 libbfd-2.19.51.20090709.so >>> 1 7.6e-04 libdl-2.11.1.so >>> -> opreport --symbols --verbose=all> /tmp/rd1.txt > Maybe this was just a typo in your note, but remember you need to pass > "--image-path=/tmp". Based on the above output, the number of samples > for mytimertest is very few compared to the total, so the symbol output > for that module will be way down in the report. I see from the output > below that no symbols are found for mytimertest. Are you doing > something to strip symbol information from the file? Please do 'objdump > -x' of mytimertest.ko to a file and attach that file to your reply. > > -Maynard >>> 4. In the rd1.txt file I have the following lines: >>> Archive: >>> Matched sample files: 14 >>> >>> > /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >>> mertest/CYCLES.100000.0.all.all.all >>> >>> > /var/lib/oprofile/samples/current/{root}/bin/bash/{dep}/{root}/bin/bas >>> h/CYCLES.100000.0.all.all.all >>> >>> > /var/lib/oprofile/samples/current/{root}/bin/busybox/{dep}/{root}/bin/ >>> busybox/CYCLES.100000.0.all.all.all >>> >>> > /var/lib/oprofile/samples/current/{root}/boot/vmlinux/{dep}/{root}/boo >>> t/vmlinux/CYCLES.100000.0.all.all.all >>> . >>> . >>> . >>> tid: all >>> cpu: all >>> profiles_set #0: >>> image: /mytimertest >>> profile_sample_files #0: >>> sample_filename: >>> > /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >>> mertest/CYCLES.100000.0.all.all.all >>> callgraph filenames: >>> profiles_set #1: >>> image: /bin/bash >>> . >>> . >>> . >>> symbol /lib/libtinfo.so.5.7, value 0 >>> start 0, end 1cf30 >>> op_bfd ctor for /tmp/mytimertest.ko >>> bfd_info::get_symbols() for /tmp/mytimertest.ko >>> bfd_get_symtab_upper_bound: 284 >>> bfd_canonicalize_symtab: 70 >>> number of symbols before filtering 1 >>> number of symbols now 1 >>> start_offset is now 60 >>> symbol /mytimertest, value 0 >>> start 0, end 7a00 >>> op_bfd ctor for /usr/bin/ophelp >>> >>> 4. As you can see, a sample file is produces for this module and > it's >>> not empty (few KB's). >>> >>> 5. Still I don't get the kernel module symbols. >>> >>> Thanks again, >>> Tomer >>> >> -----Original Message----- >> From: Maynard Johnson [mailto:may...@us...] >> Sent: Monday, December 12, 2011 5:10 PM >> To: Tomer Yacoby >> Cc: opr...@li... >> Subject: Re: Symbols of Kernel Modules >> >> 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 |
From: Tomer Y. <tom...@br...> - 2011-12-18 11:24:22
|
When I omitted the KERNEL_RANGE from daemonrc file, I still get somehow the default kernel range (I added --verbose just to get info): -> 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 DDD: oprofile_set_backtrace executing oprofiled --session-dir=/var/lib/oprofile --separate-lib=0 --separate-kernel=0 --separate-thread=0 --separate-cpu=0 --events=CYCLES:0:0:100000:0:1:1, DDD: oprofile_setup --vmlinux=/boot/COMMOM: op_mips_setup vmlinux --kernel-range=80010000,803dd6b4 --verbose=all Events: CYCLES:0:0:100000:0:1:1, Using DDD: oprofile_start 2.6+ OProfile keCOMMOM: op_mips_start rnel interface. kernel_start = 80010000, kernel_end = 803dd6b4 Reading module info. module mytimertest start c01af000 end c01af480 Using log file /var/lib/oprofile/samples/oprofiled.log Daemon started. Profiler running. Please note that now I have two KERNEL_RANGE parameters, one empty and one with the default values. Thanks, Tomer -----Original Message----- From: Tomer Yacoby Sent: Sunday, December 18, 2011 12:57 PM To: 'Maynard Johnson' Cc: opr...@li... Subject: RE: Symbols of Kernel Modules There is still no change. I omitted the KERNEL_RANGE line in the daemonrc file, still don't get the module symbols statistics. Attached the 'objdump -x' file of the kernel module mytimertest.ko. Please note that when I'm doing 'opreport -l' I get the statistics for mytimertest module but not for its symbols. -> opreport -l warning: /mytimertest could not be found. CPU: MIPS 74K, speed 0 MHz (estimated) Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) count 100000 samples % app name symbol name 133996 49.7814 vmlinux handle_IRQ_event 92148 34.2343 vmlinux __pastwait 6293 2.3379 mytimertest /mytimertest 6128 2.2766 libc-2.11.1.so /lib/libc-2.11.1.so 5244 1.9482 vmlinux bl_lilac_hw_timer_isr 4295 1.5957 ld-2.11.1.so /lib/ld-2.11.1.so . . . But when I'm adding image path I get no statistics for the module at all. I get warning but from what I've understood it shouldn't affect the samples. The date and time of the files looks OK. -> opreport -l --image-path=/tmp/ CPU: MIPS 74K, speed 0 MHz (estimated) Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) count 100000 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 133996 50.9731 vmlinux handle_IRQ_event 92148 35.0538 vmlinux __pastwait 6128 2.3311 libc-2.11.1.so /lib/libc-2.11.1.so 5244 1.9949 vmlinux bl_lilac_hw_timer_isr 4295 1.6339 ld-2.11.1.so /lib/ld-2.11.1.so . . . Thanks, Tomer -----Original Message----- From: Maynard Johnson [mailto:may...@us...] Sent: Wednesday, December 14, 2011 7:14 PM To: Tomer Yacoby Cc: opr...@li... Subject: Re: Symbols of Kernel Modules Tomer Yacoby wrote: >> Hi, >> >> 1. I'm using oprofile version 0.9.6 with kernel 2.6.34. >> >> 2. The --kernel-range option in the opcontrol command seems to be >> mandatory. >> I get the following error: >> -> opcontrol --kernel-range=none ^-- 'none' is not a valid range, which is why you get the mis-parsed kernel message below. Unfortunately, there is nothing you can do via opcontrol to clear out a previously-specified kernel-range. Edit the /root/.oprofile/daemonrc file and remove the KERNEL_RANGE line. Then omit the --kernel-range option when you use opcontrol. >> -> opcontrol --start >> Using 2.6+ OProfile kernel interface. >> error: mis-parsed kernel range: 0-0 >> >> 3. I did again: >> -> insmod /tmp/mytimertest.ko >> -> opcontrol --reset >> -> opcontrol --kernel-range=80010000,8053cbf0 >> -> opcontrol --start >> -> opcontrol --dump >> -> opcontrol -h >> -> opreport >> CPU: MIPS 74K, speed 0 MHz (estimated) >> Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit >> mask) count 100000 >> CYCLES:100000| >> samples| %| >> ------------------ >> 125453 95.4356 vmlinux >> 1767 1.3442 libc-2.11.1.so >> 1225 0.9319 ld-2.11.1.so >> 1104 0.8398 bash >> 1018 0.7744 mytimertest >> 661 0.5028 oprofiled >> 145 0.1103 busybox >> 37 0.0281 ophelp >> 24 0.0183 libm-2.11.1.so >> 11 0.0084 libreadline.so.5.2 >> 3 0.0023 libncurses.so.5.7 >> 2 0.0015 libtinfo.so.5.7 >> 2 0.0015 libbfd-2.19.51.20090709.so >> 1 7.6e-04 libdl-2.11.1.so >> -> opreport --symbols --verbose=all > /tmp/rd1.txt Maybe this was just a typo in your note, but remember you need to pass "--image-path=/tmp". Based on the above output, the number of samples for mytimertest is very few compared to the total, so the symbol output for that module will be way down in the report. I see from the output below that no symbols are found for mytimertest. Are you doing something to strip symbol information from the file? Please do 'objdump -x' of mytimertest.ko to a file and attach that file to your reply. -Maynard >> >> 4. In the rd1.txt file I have the following lines: >> Archive: >> Matched sample files: 14 >> >> /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >> mertest/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/bin/bash/{dep}/{root}/bin/bas >> h/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/bin/busybox/{dep}/{root}/bin/ >> busybox/CYCLES.100000.0.all.all.all >> >> /var/lib/oprofile/samples/current/{root}/boot/vmlinux/{dep}/{root}/boo >> t/vmlinux/CYCLES.100000.0.all.all.all >> . >> . >> . >> tid: all >> cpu: all >> profiles_set #0: >> image: /mytimertest >> profile_sample_files #0: >> sample_filename: >> /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >> mertest/CYCLES.100000.0.all.all.all >> callgraph filenames: >> profiles_set #1: >> image: /bin/bash >> . >> . >> . >> symbol /lib/libtinfo.so.5.7, value 0 >> start 0, end 1cf30 >> op_bfd ctor for /tmp/mytimertest.ko >> bfd_info::get_symbols() for /tmp/mytimertest.ko >> bfd_get_symtab_upper_bound: 284 >> bfd_canonicalize_symtab: 70 >> number of symbols before filtering 1 >> number of symbols now 1 >> start_offset is now 60 >> symbol /mytimertest, value 0 >> start 0, end 7a00 >> op_bfd ctor for /usr/bin/ophelp >> >> 4. As you can see, a sample file is produces for this module and it's >> not empty (few KB's). >> >> 5. Still I don't get the kernel module symbols. >> >> Thanks again, >> Tomer >> > > -----Original Message----- > From: Maynard Johnson [mailto:may...@us...] > Sent: Monday, December 12, 2011 5:10 PM > To: Tomer Yacoby > Cc: opr...@li... > Subject: Re: Symbols of Kernel Modules > > 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 >> > |
From: Maynard J. <may...@us...> - 2011-12-19 18:41:26
|
On 12/18/2011 05:24 AM, Tomer Yacoby wrote: > When I omitted the KERNEL_RANGE from daemonrc file, I still get somehow > the default kernel range (I added --verbose just to get info): What you see in your verbose output for kernel range is what was computed automatically. -Maynard > -> 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 > DDD: oprofile_set_backtrace > executing oprofiled --session-dir=/var/lib/oprofile --separate-lib=0 > --separate-kernel=0 --separate-thread=0 --separate-cpu=0 > --events=CYCLES:0:0:100000:0:1:1, DDD: oprofile_setup > --vmlinux=/boot/COMMOM: op_mips_setup > vmlinux --kernel-range=80010000,803dd6b4 --verbose=all > Events: CYCLES:0:0:100000:0:1:1, > Using DDD: oprofile_start > 2.6+ OProfile keCOMMOM: op_mips_start > rnel interface. > kernel_start = 80010000, kernel_end = 803dd6b4 > Reading module info. > module mytimertest start c01af000 end c01af480 > Using log file /var/lib/oprofile/samples/oprofiled.log > Daemon started. > Profiler running. > > Please note that now I have two KERNEL_RANGE parameters, one empty and > one with the default values. > > Thanks, > Tomer > > -----Original Message----- > From: Tomer Yacoby > Sent: Sunday, December 18, 2011 12:57 PM > To: 'Maynard Johnson' > Cc: opr...@li... > Subject: RE: Symbols of Kernel Modules > > There is still no change. > I omitted the KERNEL_RANGE line in the daemonrc file, still don't get > the module symbols statistics. > Attached the 'objdump -x' file of the kernel module mytimertest.ko. > Please note that when I'm doing 'opreport -l' I get the statistics for > mytimertest module but not for its symbols. > -> opreport -l > warning: /mytimertest could not be found. > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) > count 100000 > samples % app name symbol name > 133996 49.7814 vmlinux handle_IRQ_event > 92148 34.2343 vmlinux __pastwait > 6293 2.3379 mytimertest /mytimertest > 6128 2.2766 libc-2.11.1.so /lib/libc-2.11.1.so > 5244 1.9482 vmlinux bl_lilac_hw_timer_isr > 4295 1.5957 ld-2.11.1.so /lib/ld-2.11.1.so > . > . > . > > But when I'm adding image path I get no statistics for the module at > all. > I get warning but from what I've understood it shouldn't affect the > samples. The date and time of the files looks OK. > -> opreport -l --image-path=/tmp/ > CPU: MIPS 74K, speed 0 MHz (estimated) > Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit mask) > count 100000 > 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 > 133996 50.9731 vmlinux handle_IRQ_event > 92148 35.0538 vmlinux __pastwait > 6128 2.3311 libc-2.11.1.so /lib/libc-2.11.1.so > 5244 1.9949 vmlinux bl_lilac_hw_timer_isr > 4295 1.6339 ld-2.11.1.so /lib/ld-2.11.1.so > . > . > . > > Thanks, > Tomer > > > > -----Original Message----- > From: Maynard Johnson [mailto:may...@us...] > Sent: Wednesday, December 14, 2011 7:14 PM > To: Tomer Yacoby > Cc: opr...@li... > Subject: Re: Symbols of Kernel Modules > > Tomer Yacoby wrote: >>> Hi, >>> >>> 1. I'm using oprofile version 0.9.6 with kernel 2.6.34. >>> >>> 2. The --kernel-range option in the opcontrol command seems to be >>> mandatory. >>> I get the following error: >>> -> opcontrol --kernel-range=none > ^-- 'none' is not a valid range, > which is why you get the mis-parsed kernel message below. > Unfortunately, there is nothing you can do via opcontrol to clear out a > previously-specified kernel-range. Edit the /root/.oprofile/daemonrc > file and remove the KERNEL_RANGE line. Then omit the --kernel-range > option when you use opcontrol. >>> -> opcontrol --start >>> Using 2.6+ OProfile kernel interface. >>> error: mis-parsed kernel range: 0-0 >>> >>> 3. I did again: >>> -> insmod /tmp/mytimertest.ko >>> -> opcontrol --reset >>> -> opcontrol --kernel-range=80010000,8053cbf0 >>> -> opcontrol --start >>> -> opcontrol --dump >>> -> opcontrol -h >>> -> opreport >>> CPU: MIPS 74K, speed 0 MHz (estimated) >>> Counted CYCLES events (Cycles) with a unit mask of 0x00 (No unit >>> mask) count 100000 >>> CYCLES:100000| >>> samples| %| >>> ------------------ >>> 125453 95.4356 vmlinux >>> 1767 1.3442 libc-2.11.1.so >>> 1225 0.9319 ld-2.11.1.so >>> 1104 0.8398 bash >>> 1018 0.7744 mytimertest >>> 661 0.5028 oprofiled >>> 145 0.1103 busybox >>> 37 0.0281 ophelp >>> 24 0.0183 libm-2.11.1.so >>> 11 0.0084 libreadline.so.5.2 >>> 3 0.0023 libncurses.so.5.7 >>> 2 0.0015 libtinfo.so.5.7 >>> 2 0.0015 libbfd-2.19.51.20090709.so >>> 1 7.6e-04 libdl-2.11.1.so >>> -> opreport --symbols --verbose=all> /tmp/rd1.txt > Maybe this was just a typo in your note, but remember you need to pass > "--image-path=/tmp". Based on the above output, the number of samples > for mytimertest is very few compared to the total, so the symbol output > for that module will be way down in the report. I see from the output > below that no symbols are found for mytimertest. Are you doing > something to strip symbol information from the file? Please do 'objdump > -x' of mytimertest.ko to a file and attach that file to your reply. > > -Maynard >>> 4. In the rd1.txt file I have the following lines: >>> Archive: >>> Matched sample files: 14 >>> >>> > /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >>> mertest/CYCLES.100000.0.all.all.all >>> >>> > /var/lib/oprofile/samples/current/{root}/bin/bash/{dep}/{root}/bin/bas >>> h/CYCLES.100000.0.all.all.all >>> >>> > /var/lib/oprofile/samples/current/{root}/bin/busybox/{dep}/{root}/bin/ >>> busybox/CYCLES.100000.0.all.all.all >>> >>> > /var/lib/oprofile/samples/current/{root}/boot/vmlinux/{dep}/{root}/boo >>> t/vmlinux/CYCLES.100000.0.all.all.all >>> . >>> . >>> . >>> tid: all >>> cpu: all >>> profiles_set #0: >>> image: /mytimertest >>> profile_sample_files #0: >>> sample_filename: >>> > /var/lib/oprofile/samples/current/{kern}/mytimertest/{dep}/{kern}/myti >>> mertest/CYCLES.100000.0.all.all.all >>> callgraph filenames: >>> profiles_set #1: >>> image: /bin/bash >>> . >>> . >>> . >>> symbol /lib/libtinfo.so.5.7, value 0 >>> start 0, end 1cf30 >>> op_bfd ctor for /tmp/mytimertest.ko >>> bfd_info::get_symbols() for /tmp/mytimertest.ko >>> bfd_get_symtab_upper_bound: 284 >>> bfd_canonicalize_symtab: 70 >>> number of symbols before filtering 1 >>> number of symbols now 1 >>> start_offset is now 60 >>> symbol /mytimertest, value 0 >>> start 0, end 7a00 >>> op_bfd ctor for /usr/bin/ophelp >>> >>> 4. As you can see, a sample file is produces for this module and > it's >>> not empty (few KB's). >>> >>> 5. Still I don't get the kernel module symbols. >>> >>> Thanks again, >>> Tomer >>> >> -----Original Message----- >> From: Maynard Johnson [mailto:may...@us...] >> Sent: Monday, December 12, 2011 5:10 PM >> To: Tomer Yacoby >> Cc: opr...@li... >> Subject: Re: Symbols of Kernel Modules >> >> 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 |