From: William C. <wc...@us...> - 2002-12-04 16:57:50
|
Update of /cvsroot/oprofile/oprofile/utils In directory sc8-pr-cvs1:/tmp/cvs-serv4579/utils Modified Files: opcontrol Log Message: 2002-12-04 Will Cohen <wc...@re...> * utils/opcontrol: Revised checking to determine kernel interface. Index: opcontrol =================================================================== RCS file: /cvsroot/oprofile/oprofile/utils/opcontrol,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- opcontrol 3 Dec 2002 03:57:01 -0000 1.7 +++ opcontrol 4 Dec 2002 16:57:47 -0000 1.8 @@ -99,47 +99,32 @@ --version show version" >&2 } -determine_version(){ - # figure out which version of the kernel is being used - # FIXME this isn't really right there are version of - # 2.5 kernel that do not have oprofile support - - kern_release=`uname -r` - case "$kern_release" in - 2.5.*) - KERNEL_SUPPORT=yes - ;; - 2.6.*) - KERNEL_SUPPORT=yes - ;; - 2.4.*) - KERNEL_SUPPORT=no - ;; - 2.3.*) - KERNEL_SUPPORT=no - ;; - esac -} - load_module_25() { grep oprofilefs /proc/filesystems >/dev/null if [ "$?" -ne 0 ]; then modprobe oprofile if [ "$?" != "0" ]; then - echo "Couldn't load oprofile.o module" >&2 - exit 1 + # couldn't load a module + return fi grep oprofile /proc/modules >/dev/null if [ "$?" != "0" ]; then - echo "Couldn't load oprofile.o module" >&2 - exit 1 + # didn't find module + return fi fi + grep oprofilefs /proc/filesystems >/dev/null + if [ "$?" -ne 0 ]; then + # filesystem still not around + return + fi mkdir /dev/oprofile >/dev/null 2>&1 grep oprofilefs /etc/mtab >/dev/null if test "$?" -ne 0; then mount -t oprofilefs nodev /dev/oprofile >/dev/null fi + KERNEL_SUPPORT=yes + OPROFILE_AVAILABLE=yes } load_module_24() { @@ -147,25 +132,31 @@ if [ "$?" -ne 0 ]; then modprobe oprofile if [ "$?" != "0" ]; then - echo "Couldn't load oprofile.o module" >&2 - exit 1 + # couldn't load a module + return fi grep oprofile /proc/modules >/dev/null if [ "$?" != "0" ]; then - echo "Couldn't load oprofile.o module" >&2 - exit 1 + # didn't find module + return fi fi + KERNEL_SUPPORT=no + OPROFILE_AVAILABLE=yes } load_module() { - if test "$KERNEL_SUPPORT" = "yes"; then - load_module_25 - else + OPROFILE_AVAILABLE=no + load_module_25 + if test "$OPROFILE_AVAILABLE" != "yes"; then load_module_24 fi + if test "$OPROFILE_AVAILABLE" != "yes"; then + echo "Kernel doesn't support oprofile" >&2 + exit 1 + fi } # initialise parameters @@ -869,7 +860,6 @@ exit 1 fi -determine_version load_module do_init do_options $@ |