Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d62a0234 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'linux-kselftest-4.7-rc1' of...

Merge tag 'linux-kselftest-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest

Pull kselftest updates from Shuah Khan:
 "This update for Kselftest adds:

   - a new ftrace testcase
   - fixes for ftrace and intel_pstate tests"

* tag 'linux-kselftest-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
  tools: testing: define the _GNU_SOURCE macro
  kselftests/ftrace: Add a test case for event pid filtering
  kselftests/ftrace: Detect tracefs mount point
parents 4496a1d9 6eab37da
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -88,7 +88,12 @@ parse_opts() { # opts

# Parameters
DEBUGFS_DIR=`grep debugfs /proc/mounts | cut -f2 -d' ' | head -1`
if [ -z "$DEBUGFS_DIR" ]; then
    TRACING_DIR=`grep tracefs /proc/mounts | cut -f2 -d' ' | head -1`
else
    TRACING_DIR=$DEBUGFS_DIR/tracing
fi

TOP_DIR=`absdir $0`
TEST_DIR=$TOP_DIR/test.d
TEST_CASES=`find_testcases $TEST_DIR`
@@ -102,7 +107,7 @@ parse_opts $*
[ $DEBUG -ne 0 ] && set -x

# Verify parameters
if [ -z "$DEBUGFS_DIR" -o ! -d "$TRACING_DIR" ]; then
if [ -z "$TRACING_DIR" -o ! -d "$TRACING_DIR" ]; then
  errexit "No ftrace directory found"
fi

+72 −0
Original line number Diff line number Diff line
#!/bin/sh
# description: event tracing - restricts events based on pid

do_reset() {
    echo > set_event
    echo > set_event_pid
    echo 0 > options/event-fork
    clear_trace
}

fail() { #msg
    do_reset
    echo $1
    exit $FAIL
}

yield() {
    ping localhost -c 1 || sleep .001 || usleep 1 || sleep 1
}

if [ ! -f set_event -o ! -d events/sched ]; then
    echo "event tracing is not supported"
    exit_unsupported
fi

if [ ! -f set_event_pid ]; then
    echo "event pid filtering is not supported"
    exit_unsupported
fi

reset_tracer
do_reset

echo 1 > events/sched/sched_switch/enable

yield

count=`cat trace | grep sched_switch | wc -l`
if [ $count -eq 0 ]; then
    fail "sched_switch events are not recorded"
fi

do_reset

read mypid rest < /proc/self/stat

echo $mypid > set_event_pid
echo 'sched:sched_switch' > set_event

yield

count=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`
if [ $count -ne 0 ]; then
    fail "sched_switch events from other task are recorded"
fi

do_reset

echo $mypid > set_event_pid
echo 1 > options/event-fork
echo 1 > events/sched/sched_switch/enable

yield

count=`cat trace | grep sched_switch | grep -v "pid=$mypid" | wc -l`
if [ $count -eq 0 ]; then
    fail "sched_switch events from other task are not recorded"
fi

do_reset

exit 0
+1 −1
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ EVALUATE_ONLY=0
max_cpus=$(($(nproc)-1))

# compile programs
gcc -o aperf aperf.c -lm
gcc aperf.c -Wall -D_GNU_SOURCE -o aperf  -lm
[ $? -ne 0 ] && echo "Problem compiling aperf.c." && exit 1
gcc -o msr msr.c -lm
[ $? -ne 0 ] && echo "Problem compiling msr.c." && exit 1