[ltt-dev] [PATCH 3/3] Unify ltt-armall* scripts
Mathieu Desnoyers
compudj at krystal.dyndns.org
Wed Nov 18 11:16:54 EST 2009
* Mathieu Desnoyers (compudj at krystal.dyndns.org) wrote:
> * Mathieu Desnoyers (mathieu.desnoyers at polymtl.ca) wrote:
> > * Benjamin Poirier (benjamin.poirier at polymtl.ca) wrote:
> > > Adds switches to ltt-armall to control locking-related and network-related
> > > marker activation (off by default).
> > > Modifies ltt-disarmall to simply disconnect all active markers (and no more).
> > >
> >
> > Great patch ! :) Will merge.
>
> hrm. A small problem here. It's in bash. I don't think it will work with
> busybox, which is a requirement for embedded people.
>
> If I run it with /bin/sh in the header, I get:
>
> ./ltt-armall: line 71: syntax error near unexpected token `<'
> ./ltt-armall: line 71: `done < <(eval "find '$MARKERSROOT' $TESTS -name
> metadata -prune -o -name enable -print0")'
>
> Any idea on how to fix this ?
>
Ah !
(eval "find '${MARKERSROOT}' ${TESTS} -name metadata -prune -o -name enable -print0") | while read -r -d $'\0' marker; do
if [ ! ${QUIET} ]; then
echo "Connecting ${marker%/enable}"
fi
echo 1 > ${marker}
done
seems to do the job.
Mathieu
> Mathieu
>
> >
> > Mathieu
> >
> > > Signed-off-by: Benjamin Poirier <benjamin.poirier at polymtl.ca>
> > > Cc: Pierre-Marc Fournier <pierre-marc.fournier at polymtl.ca>
> > > ---
> > > lttctl/Makefile.am | 14 -------
> > > lttctl/ltt-armall.sh | 82 ++++++++++++++++++++++++++++++++++--------
> > > lttctl/ltt-armnetsync.sh | 9 -----
> > > lttctl/ltt-disarmall.sh | 72 +++++++++++++++++++++++++++++--------
> > > lttctl/ltt-disarmnetsync.sh | 9 -----
> > > 5 files changed, 122 insertions(+), 64 deletions(-)
> > > delete mode 100755 lttctl/ltt-armnetsync.sh
> > > delete mode 100755 lttctl/ltt-disarmnetsync.sh
> > >
> > > diff --git a/lttctl/Makefile.am b/lttctl/Makefile.am
> > > index f86f118..b01d983 100644
> > > --- a/lttctl/Makefile.am
> > > +++ b/lttctl/Makefile.am
> > > @@ -4,11 +4,9 @@ AM_CFLAGS = -DPACKAGE_DATA_DIR=\""$(datadir)"\" -DPACKAGE_BIN_DIR=\""$(bindir)"\
> > >
> > > bin_PROGRAMS = lttctl
> > > bin_SCRIPTS = ltt-armall ltt-disarmall \
> > > - ltt-armnetsync ltt-disarmnetsync \
> > > ltt-armtap ltt-disarmtap
> > > CLEANFILES = $(bin_SCRIPTS)
> > > EXTRA_DIST = ltt-armall.sh ltt-disarmall.sh \
> > > - ltt-armnetsync.sh ltt-disarmnetsync.sh \
> > > ltt-armtap.sh ltt-disarmtap.sh
> > >
> > > ltt-armall: ltt-armall.sh
> > > @@ -23,18 +21,6 @@ ltt-disarmall: ltt-disarmall.sh
> > > cat $(srcdir)/ltt-disarmall.sh >> ltt-disarmall
> > > chmod ugo+x ltt-disarmall
> > >
> > > -ltt-armnetsync: ltt-armnetsync.sh
> > > - rm -f ltt-armnetsync
> > > - echo "#!"$(BASH) > ltt-armnetsync
> > > - cat $(srcdir)/ltt-armnetsync.sh >> ltt-armnetsync
> > > - chmod ugo+x ltt-armnetsync
> > > -
> > > -ltt-disarmnetsync: ltt-disarmnetsync.sh
> > > - rm -f ltt-disarmnetsync
> > > - echo "#!"$(BASH) > ltt-disarmnetsync
> > > - cat $(srcdir)/ltt-disarmnetsync.sh >> ltt-disarmnetsync
> > > - chmod ugo+x ltt-disarmnetsync
> > > -
> > > ltt-armtap: ltt-armtap.sh
> > > rm -f ltt-armtap
> > > echo "#!"$(BASH) > ltt-armtap
> > > diff --git a/lttctl/ltt-armall.sh b/lttctl/ltt-armall.sh
> > > index 4c117de..7771505 100755
> > > --- a/lttctl/ltt-armall.sh
> > > +++ b/lttctl/ltt-armall.sh
> > > @@ -1,21 +1,71 @@
> > > +#!/bin/bash
> > > +# Copyright (C) 2009 Benjamin Poirier
> > > +
> > > +# This program is free software; you can redistribute it and/or modify
> > > +# it under the terms of the GNU General Public License as published by
> > > +# the Free Software Foundation; either version 2 of the License, or
> > > +# (at your option) any later version.
> > > +
> > > +# This program is distributed in the hope that it will be useful,
> > > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > > +# GNU General Public License for more details.
> > > +
> > > +# You should have received a copy of the GNU General Public License along
> > > +# with this program; if not, write to the Free Software Foundation, Inc.,
> > > +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> > > +
> > > DEBUGFSROOT=$(grep ^debugfs /proc/mounts | head -1 | awk '{print $2}')
> > > MARKERSROOT=${DEBUGFSROOT}/ltt/markers
> > >
> > > -echo Connecting all markers
> > > -
> > > -for c in ${MARKERSROOT}/*; do
> > > - case ${c} in
> > > - ${MARKERSROOT}/metadata)
> > > - ;;
> > > - ${MARKERSROOT}/locking)
> > > - ;;
> > > - ${MARKERSROOT}/lockdep)
> > > - ;;
> > > - *)
> > > - for m in ${c}/*; do
> > > - echo Connecting ${m}
> > > - echo 1 > ${m}/enable
> > > - done
> > > - ;;
> > > +usage () {
> > > + echo "Usage: $0 [OPTION]..." > /dev/stderr
> > > + echo "Connect lttng markers" > /dev/stderr
> > > + echo "" > /dev/stderr
> > > + echo "Options:" > /dev/stderr
> > > + printf "\t-l Also activate locking markers (high traffic)\n" > /dev/stderr
> > > + printf "\t-n Also activate detailed network markers (large size)\n" > /dev/stderr
> > > + echo "" > /dev/stderr
> > > + printf "\t-q Quiet mode, suppress output\n" > /dev/stderr
> > > + printf "\t-h Print this help\n" > /dev/stderr
> > > + echo "" > /dev/stderr
> > > +}
> > > +
> > > +if [ ! "$DEBUGFSROOT" ]; then
> > > + echo "Error: debugfs not mounted" > /dev/stderr
> > > + exit 1;
> > > +fi
> > > +
> > > +if [ ! -d "$MARKERSROOT" ]; then
> > > + echo "Error: LTT trace controller not found (did you compile and load LTTng?)" > /dev/stderr
> > > + exit 1;
> > > +fi
> > > +
> > > +while getopts "lnqh" options; do
> > > + case $options in
> > > + l) LOCKING="0";;
> > > + n) NETWORK="0";;
> > > + q) QUIET="0";;
> > > + h) usage;
> > > + exit 0;;
> > > + \?) usage;
> > > + exit 1;;
> > > esac
> > > done
> > > +shift $(($OPTIND - 1))
> > > +
> > > +
> > > +if [ ! $LOCKING ]; then
> > > + TESTS="${TESTS} -name lockdep -prune -o -name locking -prune -o"
> > > +fi
> > > +
> > > +if [ ! $NETWORK ]; then
> > > + TESTS="${TESTS} -path '*/net/*_extended' -prune -o"
> > > +fi
> > > +
> > > +while read -r -d $'\0' marker; do
> > > + if [ ! $QUIET ]; then
> > > + echo "Connecting ${marker%/enable}"
> > > + fi
> > > + echo 1 > $marker
> > > +done < <(eval "find '$MARKERSROOT' $TESTS -name metadata -prune -o -name enable -print0")
> > > diff --git a/lttctl/ltt-armnetsync.sh b/lttctl/ltt-armnetsync.sh
> > > deleted file mode 100755
> > > index a07b751..0000000
> > > --- a/lttctl/ltt-armnetsync.sh
> > > +++ /dev/null
> > > @@ -1,9 +0,0 @@
> > > -DEBUGFSROOT=$(grep ^debugfs /proc/mounts | head -1 | awk '{print $2}')
> > > -MARKERSROOT=${DEBUGFSROOT}/ltt/markers
> > > -
> > > -echo Connecting network synchronization markers
> > > -
> > > -for m in ${MARKERSROOT}/net/*_extended; do
> > > - echo Connecting ${m}
> > > - echo 1 > ${m}/enable
> > > -done
> > > diff --git a/lttctl/ltt-disarmall.sh b/lttctl/ltt-disarmall.sh
> > > index d06950f..2b5704f 100755
> > > --- a/lttctl/ltt-disarmall.sh
> > > +++ b/lttctl/ltt-disarmall.sh
> > > @@ -1,21 +1,61 @@
> > > +#!/bin/bash
> > > +# Copyright (C) 2009 Benjamin Poirier
> > > +
> > > +# This program is free software; you can redistribute it and/or modify
> > > +# it under the terms of the GNU General Public License as published by
> > > +# the Free Software Foundation; either version 2 of the License, or
> > > +# (at your option) any later version.
> > > +
> > > +# This program is distributed in the hope that it will be useful,
> > > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > > +# GNU General Public License for more details.
> > > +
> > > +# You should have received a copy of the GNU General Public License along
> > > +# with this program; if not, write to the Free Software Foundation, Inc.,
> > > +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> > > +
> > > DEBUGFSROOT=$(grep ^debugfs /proc/mounts | head -1 | awk '{print $2}')
> > > MARKERSROOT=${DEBUGFSROOT}/ltt/markers
> > >
> > > -echo Disconnecting all markers
> > > -
> > > -for c in ${MARKERSROOT}/*; do
> > > - case ${c} in
> > > - ${MARKERSROOT}/metadata)
> > > - ;;
> > > - ${MARKERSROOT}/locking)
> > > - ;;
> > > - ${MARKERSROOT}/lockdep)
> > > - ;;
> > > - *)
> > > - for m in ${c}/*; do
> > > - echo Disconnecting ${m}
> > > - echo 0 > ${m}/enable
> > > - done
> > > - ;;
> > > +usage () {
> > > + echo "Usage: $0 [OPTION]..." > /dev/stderr
> > > + echo "Disconnect lttng markers" > /dev/stderr
> > > + echo "" > /dev/stderr
> > > + echo "Options:" > /dev/stderr
> > > + printf "\t-q Quiet mode, suppress output\n" > /dev/stderr
> > > + printf "\t-h Print this help\n" > /dev/stderr
> > > + echo "" > /dev/stderr
> > > +}
> > > +
> > > +if [ ! "$DEBUGFSROOT" ]; then
> > > + echo "Error: debugfs not mounted" > /dev/stderr
> > > + exit 1;
> > > +fi
> > > +
> > > +if [ ! -d "$MARKERSROOT" ]; then
> > > + echo "Error: LTT trace controller not found (did you compile and load LTTng?)" > /dev/stderr
> > > + exit 1;
> > > +fi
> > > +
> > > +while getopts "qh" options; do
> > > + case $options in
> > > + q) QUIET="0";;
> > > + h) usage;
> > > + exit 0;;
> > > + \?) usage;
> > > + exit 1;;
> > > esac
> > > done
> > > +shift $(($OPTIND - 1))
> > > +
> > > +while read -r -d $'\0' marker; do
> > > + grep "^1$" "$marker" -q
> > > + if [ $? -ne 0 ]; then
> > > + continue
> > > + fi
> > > + if [ ! $QUIET ]; then
> > > + echo "Disconnecting ${marker%/enable}"
> > > + fi
> > > + echo 0 > $marker
> > > +done < <(eval "find '$MARKERSROOT' -name metadata -prune -o -name enable -print0")
> > > diff --git a/lttctl/ltt-disarmnetsync.sh b/lttctl/ltt-disarmnetsync.sh
> > > deleted file mode 100755
> > > index fead515..0000000
> > > --- a/lttctl/ltt-disarmnetsync.sh
> > > +++ /dev/null
> > > @@ -1,9 +0,0 @@
> > > -DEBUGFSROOT=$(grep ^debugfs /proc/mounts | head -1 | awk '{print $2}')
> > > -MARKERSROOT=${DEBUGFSROOT}/ltt/markers
> > > -
> > > -echo Disconnecting network synchronization markers
> > > -
> > > -for m in ${MARKERSROOT}/net/*_extended; do
> > > - echo Disconnecting ${m}
> > > - echo 0 > ${m}/enable
> > > -done
> > > --
> > > 1.6.5
> > >
> >
> > --
> > Mathieu Desnoyers
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> >
> > _______________________________________________
> > ltt-dev mailing list
> > ltt-dev at lists.casi.polymtl.ca
> > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> >
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
More information about the lttng-dev
mailing list