Enabling ftrace for kernel debugging.
[kvmfornfv.git] / ci / envs / enable-trace.sh
1 #!/bin/bash
2
3 set -o xtrace
4 EVENT=$1
5 curpwd=`pwd`
6 TRACEDIR=/sys/kernel/debug/tracing/
7 mv /tmp/123.txt /tmp/123.back
8
9 function getcpumask {
10         masks=`lscpu | grep "NUMA node1 CPU(s)"| awk -F ':' '{print \$2}' | sed 's/[[:space:]]//g'`
11         first=$(echo ${masks} | cut -f1 -d-)
12         last=$(echo ${masks} | cut -f2 -d-)
13         cpumask=0
14         while [ ${first} -lt ${last} ]; do
15                 cputmp=`echo "ibase=10; obase=16; 2^(${c})" | bc`
16                 cpumask=`echo "ibase=16; obase=10; ${cputmp}+${cpumask}" |bc`
17                 first=`expr $first + 1`
18         done
19         highvalue=`echo "ibase=16;obase=10;$cpumask/(2^20)" |bc `
20         lowvalue=`echo "ibase=16;obase=10;$cpumask%(2^20)" |bc `
21         CPUMASK=`printf '%08x,%08x' 0x$highvalue 0x$lowvalue`
22 }
23
24 getcpumask
25 sudo bash -c "echo $CPUMASK > $TRACEDIR/tracing_cpumask"
26
27 #sudo bash -c "echo function > $TRACEDIR/current_tracer"
28 #echo :* > set_event
29 #echo $EVENT:* > set_event
30
31 sudo bash -c "echo 1 > $TRACEDIR/events/irq/enable"
32 sudo bash -c "echo 1 > $TRACEDIR/events/irq_vectors/enable"
33 sudo bash -c "echo 1 > $TRACEDIR/events/task/enable"
34 sudo bash -c "echo 1 > $TRACEDIR/events/syscalls/enable"
35 sudo bash -c "echo 1 > $TRACEDIR/events/kmem/enable"
36 sudo bash -c "echo 1 > $TRACEDIR/events/fence/enable"
37 sudo bash -c "echo 1 > $TRACEDIR/events/context_tracking/enable"
38 sudo bash -c "echo 1 > $TRACEDIR/events/exceptions/enable"
39 sudo bash -c "echo 1 > $TRACEDIR/events/irq_vectors/enable"
40 sudo bash -c "echo 1 > $TRACEDIR/events/nmi/enable"
41 sudo bash -c "echo 1 > $TRACEDIR/events/kmem/enable"
42 sudo bash -c "echo 1 > $TRACEDIR/events/migrate/enable"
43 sudo bash -c "echo 1 > $TRACEDIR/events/sock/enable"
44 sudo bash -c "echo 1 > $TRACEDIR/events/timer/enable"
45 sudo bash -c "echo 1 > $TRACEDIR/events/sched/enable"
46 sudo bash -c "echo 1 > $TRACEDIR/events/rcu/enable"
47 sudo bash -c "echo 1 > $TRACEDIR/events/kvm/enable"
48 sudo bash -c "echo 1 > $TRACEDIR/events/workqueue/enable"
49 sudo bash -c "echo 1 > $TRACEDIR/events/power/enable"
50 sudo bash -c "echo 1 > $TRACEDIR/events/signal/enable"
51
52 sudo bash -c "echo 1 > events/tlb/enable"
53
54 # Clean original log info
55 sudo bash -c "echo > $TRACEDIR/trace"
56 #sudo bash -c "echo function > $TRACEDIR/current_tracer"
57 sudo sysctl kernel.ftrace_enabled=1
58 #echo 0 >tracing_on; sleep 1; echo 1 >tracing_on; sleep 20; echo 0 >tracing_on;sleep 1; cat trace >/tmp/123.txt
59 sudo bash -c "echo 1 >$TRACEDIR/tracing_on"
60
61 cd $curpwd
62 #source /home/yjiang5/repo/hostbin/disable_trace.sh
63 set +o xtrace