[ltt-dev] [PATCH 1/2] Add module-loading capabilities to ltt-armall

Alexandre Montplaisir alexandre.montplaisir at polymtl.ca
Thu Sep 23 22:39:25 EDT 2010


From: Alexandre Montplaisir <alexandre.montplaisir at gmail.com>

This change makes ltt-armall load the required kernel modules
if it cannot find them.

The script will also check if it is being run as root, so
modprobe doesn't fail.

Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir at gmail.com>
---
 lttctl/ltt-armall.sh |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/lttctl/ltt-armall.sh b/lttctl/ltt-armall.sh
index 1b1c3f9..d2548b8 100755
--- a/lttctl/ltt-armall.sh
+++ b/lttctl/ltt-armall.sh
@@ -17,6 +17,7 @@
 
 DEBUGFSROOT=$(awk '{if ($3 == "debugfs") print $2}' /proc/mounts | head -n 1)
 MARKERSROOT=${DEBUGFSROOT}/ltt/markers
+DEFAULTMODULES="ltt-trace-control ltt-marker-control ltt-tracer ltt-relay ltt-kprobes ltt-userspace-event ltt-statedump ipc-trace kernel-trace mm-trace net-trace fs-trace jbd2-trace syscall-trace trap-trace block-trace rcu-trace"
 
 usage () {
 	echo "Usage: $0 [OPTION]..." > /dev/stderr
@@ -32,14 +33,25 @@ usage () {
 	echo "" > /dev/stderr
 }
 
+if [ "$(id -u)" != "0" ]; then
+	echo "Error: This script needs to be run as root." > /dev/stderr
+	exit 1;
+fi
+
 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;
+	#Try loading the kernel modules first
+	for i in ${DEFAULTMODULES}; do
+		modprobe $i
+	done
+	if [ ! -d "${MARKERSROOT}" ]; then
+		echo "Error: LTT trace controller not found (did you compile and load LTTng?)" > /dev/stderr
+		exit 1;
+	fi
 fi
 
 while getopts "lnqh" options; do
@@ -59,10 +71,14 @@ shift $((${OPTIND} - 1))
 
 if [ ! ${LOCKING} ]; then
 	TESTS="${TESTS} -name lockdep -prune -o -name locking -prune -o"
+else
+	modprobe lockdep-trace
 fi
 
 if [ ! ${NETWORK} ]; then
 	TESTS="${TESTS} -path '*/net/*_extended' -prune -o"
+else
+	modprobe net-extended-trace
 fi
 
 if [ ! ${INPUT} ]; then
-- 
1.7.1





More information about the lttng-dev mailing list