I must confess that I had previously altered check_version() to avoid a "Kernel support not available" error I was getting initially because my kernel should support oprofile. So, I went back to the original version and this is what happens when I try to start oprofile after rebooting my board:
Eclipse # insmod oprofile.ko
Eclipse # /usr/bin/opcontrol --init
Kernel support not available, missing opcontrol --init as root ?
/etc/mtab is empty. I am doing everything as root.
I apologize for having bypassed this error. Should "oprofilefs" appear in /etc/mtab after inmod'ing oprofile.ko and doing opcontrol --init?
Robert Richter wrote:On 03.11.09 10:21:40, email@example.com wrote:I tried that and am still seeing the "bad magic number" error when running opreport and "Invalid argument" entries in oprofiled.log.The commands I am using and part of oprofiled.log follow. Any suggestions?Eclipse # rm /var/lib/oprofile/samples/oprofiled.logEclipse # rm -rf /var/lib/oprofile/samples/current/Eclipse # cd /usr/bin/Eclipse # ./opcontrol --initmount: mounting nodev on /dev/oprofile failed: Device or resource busyThere is an error mounting oprofilefs, try the following steps todebug this:You need to figure out why the init is failing. Any oprofile commands you do afterwards are useless until you fix this. It sounds to me like you still have an oprofile daemon running. Do 'ps awx |grep oprofiled' to see if the daemon is running. If so, do:
1. opcontrol --deinit
2. rm /root/.oprofile/daemonrc
3. opcontrol --init
4. Execute your other opcontrol setup commands to specify profiling parameters
5. 'opcontrol --start' and run your app.
6. generate your report(s) with opreport
If the 'ps' command shows oprofiled is not running, you need to determine why you're getting "Device or resource busy". Look at dmesg. Are there any other perf tools on the system that might be using the performance monitoring hardware?
-MaynardFirst, unmount /dev/oprofile if it is there.The script tries to mount the oprofile filesystem that the kernelshould provide. It checks /proc/filesystems, you should get somethinglike this on your system:# cat /proc/filesystems | grep oprofilenodev oprofilefsIf it is not there, the script tries then to load the oprofile moduleand checks the filesystem again. oprofile should then be listed in/proc/modules and also oprofilefs in /proc/filesystems. If not, thescript fails. Maybe /proc is disabled or not available? Not sure ifthis is a config option.You can also try to mount oprofile directly:# mkdir /dev/oprofile# mount -t oprofilefs nodev /dev/oprofileAlso, it seems you are using an own build of oprofile, which versionare you using. Did you use configure/make/make install to install thepackage on your system? Which config did you use to compile yourkernel?-Robert