From: William C. <wc...@nc...> - 2002-12-04 16:22:09
Attachments:
opcontrol_modvers.patch
|
I have a patch that does a more intelligent job determining which oprofile kernel interface to use. It elminates the assumption about which kernel versions have which interfaces. 2002-12-04 Will Cohen <wc...@re...> * utils/opcontrol: Revised checking to determine kernel interface. -Will |
From: William C. <wc...@nc...> - 2002-12-04 16:38:58
|
I just realized the patch also had a change for the do_dump. Please ingore the changes to the do_dump function in opcontrol. -Will William Cohen wrote: > I have a patch that does a more intelligent job determining which > oprofile kernel interface to use. It elminates the assumption about > which kernel versions have which interfaces. > > 2002-12-04 Will Cohen <wc...@re...> > > * utils/opcontrol: Revised checking to determine kernel > interface. > > -Will > > > ------------------------------------------------------------------------ > > Index: opcontrol > =================================================================== > RCS file: /cvsroot/oprofile/oprofile/utils/opcontrol,v > retrieving revision 1.7 > diff -U2 -r1.7 opcontrol > --- opcontrol 3 Dec 2002 03:57:01 -0000 1.7 > +++ opcontrol 4 Dec 2002 16:15:43 -0000 > @@ -100,26 +100,4 @@ > } > > -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 > @@ -127,13 +105,18 @@ > 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 > @@ -141,4 +124,6 @@ > mount -t oprofilefs nodev /dev/oprofile >/dev/null > fi > + KERNEL_SUPPORT=yes > + OPROFILE_AVAILABLE=yes > } > > @@ -148,13 +133,15 @@ > 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 > } > > @@ -162,9 +149,13 @@ > 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 > } > > @@ -735,15 +726,19 @@ > > do_dump() { > + if [ ! -w $MOUNT/dump ]; then > + echo "Cannot initiate dump." >&2 > + exit 1 > + fi > + > if test "$KERNEL_SUPPORT" = "yes"; then > - # FIXME the 2.5 version really should be able to dump data > - echo "No dumps for 2.5 version." >& 2 > - # exit 1 > + echo 0 > $DIR/complete_dump > + echo 1 > $MOUNT/dump > + while [ "`cat $DIR/complete_dump`" == "0" ] > + do > + sleep 1; > + done > else > - if [ ! -w $MOUNT/dump ]; then > - echo "Cannot initiate dump." >&2 > - exit 1 > - fi > > - echo 1 >/proc/sys/dev/oprofile/dump > + echo 1 > $MOUNT/dump > fi > } > @@ -870,5 +865,4 @@ > fi > > -determine_version > load_module > do_init |
From: John L. <le...@mo...> - 2002-12-04 16:55:04
|
On Wed, Dec 04, 2002 at 11:22:06AM -0500, William Cohen wrote: > I have a patch that does a more intelligent job determining which > oprofile kernel interface to use. It elminates the assumption about > which kernel versions have which interfaces. OK to apply thanks john |