From: Li Wang <liwang@redhat.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH RFC 6/9] ftrace_stress: skip unsupported tests
Date: Fri, 4 Mar 2016 16:24:55 +0800 [thread overview]
Message-ID: <1457079898-9449-7-git-send-email-liwang@redhat.com> (raw)
In-Reply-To: <1457079898-9449-6-git-send-email-liwang@redhat.com>
From: Chunyu Hu <chuhu@redhat.com>
Checking if it's supported before lanuching a test script. This action is
through verifing the matched file in ftrace tracing direcrotry.
At the same time, transform the hard coded pids to the test_targets string and
make it easier to be controlled.
With this modification, the outdated tracing_enabled issue can be skiped on
newer kernels.
Signed-off-by: Chunyu Hu <chuhu@redhat.com>
---
testcases/kernel/tracing/ftrace_test/ftrace_lib.sh | 10 +-
.../ftrace_test/ftrace_stress/ftrace_set_event.sh | 2 +
.../ftrace_stress/ftrace_set_ftrace_pid.sh | 11 --
.../ftrace_stress/ftrace_stack_max_size.sh | 11 --
.../ftrace_stress/ftrace_stack_trace.sh | 12 ---
.../ftrace_stress/ftrace_tracing_max_latency.sh | 12 ---
.../tracing/ftrace_test/ftrace_stress_test.sh | 113 ++++++++++-----------
7 files changed, 64 insertions(+), 107 deletions(-)
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_lib.sh b/testcases/kernel/tracing/ftrace_test/ftrace_lib.sh
index 7c72afb..81af617 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_lib.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_lib.sh
@@ -41,9 +41,12 @@ save_old_setting()
old_trace_options=( `cat trace_options` )
old_tracing_on=`cat tracing_on`
- old_tracing_enabled=`cat tracing_enabled`
old_buffer_size=`cat buffer_size_kb`
+ if [ -e tracing_enabled ]; then
+ old_tracing_enabled=`cat tracing_enabled`
+ fi
+
if [ -e stack_max_size ]; then
old_stack_tracer_enabled=`cat /proc/sys/kernel/stack_tracer_enabled`
fi
@@ -86,7 +89,10 @@ restore_old_setting()
echo $old_buffer_size > buffer_size_kb
echo $old_tracing_on > tracing_on
- echo $old_tracing_enabled > tracing_enabled
+
+ if [ -e tracing_enabled ];then
+ echo $old_tracing_enabled > tracing_enabled
+ fi
for option in $old_trace_options
do
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_event.sh b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_event.sh
index d7efdd4..d1a6bd3 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_event.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_event.sh
@@ -36,6 +36,8 @@ for ((; ;))
for event in `cat $TRACING_PATH/available_events`;
do
+ # ftrace event sys is special, skip it
+ [[ $event =~ ftrace:* ]] && continue
echo $event >> "$TRACING_PATH"/set_event
done
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_pid.sh b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_pid.sh
index 7bc76d9..3eaf017 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_pid.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_pid.sh
@@ -15,19 +15,9 @@
LOOP=300
-if [ ! -e "$TRACING_PATH"/set_ftrace_pid ]; then
- should_skip=1
-else
- should_skip=0
-fi
for ((; ; ))
{
- if [ $should_skip -eq 1 ]; then
- sleep 2
- continue
- fi
-
for ((j = 0; j < $LOOP; j++))
{
for ((k = 1; k <= NR_PIDS; k++))
@@ -46,4 +36,3 @@ for ((; ; ))
sleep 1
}
-
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_max_size.sh b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_max_size.sh
index 682d05e..34d506b 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_max_size.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_max_size.sh
@@ -15,19 +15,8 @@
MAX_STACK_SIZE=8192
-if [ ! -e /proc/sys/kernel/stack_tracer_enabled ]; then
- should_skip=1
-else
- should_skip=0
-fi
-
for ((; ;))
{
- if [ $should_skip -eq 1 ]; then
- sleep 2
- continue
- fi
-
for ((i = 0; i < $MAX_STACK_SIZE; i += 70))
{
echo $i > "$TRACING_PATH"/stack_max_size
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_trace.sh b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_trace.sh
index a406c51..1850c26 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_trace.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_trace.sh
@@ -15,19 +15,8 @@
LOOP=400
-if [ ! -e /proc/sys/kernel/stack_tracer_enabled ]; then
- should_skip=1
-else
- should_skip=0
-fi
-
for ((; ;))
{
- if [ $should_skip -eq 1 ]; then
- sleep 2
- continue
- fi
-
for ((i = 0; i < $LOOP; i++))
{
cat "$TRACING_PATH"/stack_trace > /dev/null
@@ -43,4 +32,3 @@ for ((; ;))
sleep 1
}
-
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_max_latency.sh b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_max_latency.sh
index f19d734..fbaceb8 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_max_latency.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_max_latency.sh
@@ -15,19 +15,8 @@
MAX_LATENCY=100000
-if [ ! -e "$TRACING_PATH"/tracing_max_latency ]; then
- should_skip=1
-else
- should_skip=0
-fi
-
for ((; ;))
{
- if [ $should_skip -eq 1 ]; then
- sleep 2
- continue
- fi
-
for ((i = 0; i < $MAX_LATENCY; i += 400))
{
echo $i > "$TRACING_PATH"/tracing_max_latency
@@ -35,4 +24,3 @@ for ((; ;))
sleep 1
}
-
diff --git a/testcases/kernel/tracing/ftrace_test/ftrace_stress_test.sh b/testcases/kernel/tracing/ftrace_test/ftrace_stress_test.sh
index beced43..d1be49a 100755
--- a/testcases/kernel/tracing/ftrace_test/ftrace_stress_test.sh
+++ b/testcases/kernel/tracing/ftrace_test/ftrace_stress_test.sh
@@ -21,82 +21,77 @@
## ##
###########################################################################
-
export TCID="ftrace-stress-test"
export TST_TOTAL=1
export TST_COUNT=1
. ftrace_lib.sh
-export_pids()
-{
- export pid1 pid2 pid3 pid4 pid5 pid6 pid7 pid8 pid9 pid10 pid11 pid12 \
- pid13 pid14 pid15 pid16
+test_targets=" \
+trace_pipe current_tracer ftrace_enabled function_profile_enabled \
+set_event set_ftrace_pid stack_max_size stack_trace trace trace_clock \
+trace_options trace_stat tracing_enabled tracing_max_latency \
+tracing_on function_profile_enabled buffer_size_kb"
- export NR_PIDS=16
+get_skip_targets()
+{
+ for target in ${test_targets}; do
+ if [ ! -e $TRACING_PATH/$target ] &&
+ [ ! -e /proc/sys/kernel/$target ]; then
+ eval skip_$target=1
+ echo "$target is not supported. Skip it."
+ else
+ eval skip_$target=0
+ fi
+ done
}
-test_stress()
+should_skip_target()
{
- export_pids
-
- $SPATH/ftrace_trace_clock.sh &
- pid1=$!
- $SPATH/ftrace_current_tracer.sh &
- pid2=$!
- $SPATH/ftrace_trace_options.sh &
- pid3=$!
- $SPATH/ftrace_tracing_max_latency.sh &
- pid4=$!
- $SPATH/ftrace_stack_trace.sh &
- pid5=$!
- $SPATH/ftrace_stack_max_size.sh &
- pid6=$!
- $SPATH/ftrace_tracing_on.sh &
- pid7=$!
- $SPATH/ftrace_tracing_enabled.sh &
- pid8=$!
- $SPATH/ftrace_set_event.sh &
- pid9=$!
- $SPATH/ftrace_buffer_size.sh &
- pid10=$!
- $SPATH/ftrace_trace.sh &
- pid11=$!
- $SPATH/ftrace_trace_pipe.sh &
- pid12=$!
- $SPATH/ftrace_ftrace_enabled.sh &
- pid13=$!
- $SPATH/ftrace_set_ftrace_pid.sh &
- pid14=$!
- $SPATH/ftrace_profile_enabled.sh &
- pid15=$!
- $SPATH/ftrace_trace_stat.sh &
- pid16=$!
+ local var=skip_$1
+ local val=${!var}
+ [ "$val" = 1 ]
}
test_kill()
{
- kill -KILL $pid1 || test_success=false
- kill -KILL $pid2 || test_success=false
- kill -KILL $pid3 || test_success=false
- kill -KILL $pid4 || test_success=false
- kill -KILL $pid5 || test_success=false
- kill -KILL $pid6 || test_success=false
- kill -KILL $pid7 || test_success=false
- kill -KILL $pid8 || test_success=false
- kill -KILL $pid9 || test_success=false
- kill -KILL $pid10 || test_success=false
- kill -KILL $pid11 || test_success=false
- kill -USR1 $pid12 || test_success=false
- kill -KILL $pid13 || test_success=false
- kill -KILL $pid14 || test_success=false
- kill -KILL $pid15 || test_success=false
- kill -KILL $pid16 || test_success=false
+ kill -USR1 ${pid0} || test_success=false
+
+ for ((p=1; p<NR_PIDS; p++))
+ {
+ local kill_pid=pid${p}
+ kill -KILL ${!kill_pid} || test_success=false
+ }
sleep 2
clean_up
}
+test_stress()
+{
+ NR_PIDS=0
+ echo "Test targets: ${test_targets}"
+ get_skip_targets
+ for target in ${test_targets}; do
+ if should_skip_target $target; then
+ continue
+ fi
+ $SPATH/ftrace_${target}.sh &
+ eval pid${NR_PIDS}=$!
+ echo "Start pid${NR_PIDS}=$! $SPATH/ftrace_${target}.sh"
+ ((NR_PIDS++))
+ done
+ export_pids
+}
+
+export_pids()
+{
+ for ((i=0; i<NR_PIDS; i++))
+ {
+ export pid${i}
+ }
+ export NR_PIDS
+}
# ----------------------------
echo "Ftrace Stress Test Begin"
@@ -111,11 +106,11 @@ test_wait
test_kill
-echo "Ftrace Stress Test End"
-
if $test_success; then
tst_resm TPASS "finished running the test. Run dmesg to double-check for bugs"
else
tst_resm TFAIL "please check log message."
exit 1
fi
+
+echo "Ftrace Stress Test End"
--
1.8.3.1
next prev parent reply other threads:[~2016-03-04 8:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-04 8:24 [LTP] [PATCH RFC 0/9] tracing: make ftrace tests to be extended Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 1/9] ftrace_stress: remove the useless file ftrace_get_page_size.c Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 2/9] tracing[1]: reorganize ftrace-stress tests to general tests Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 3/9] tracing[2]: reorganize ftrace stress " Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 4/9] ftrace_regression: add new case to ftrace_regression/ dir Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 5/9] ftrace_regression: add a new testcase Li Wang
2016-03-04 8:24 ` Li Wang [this message]
2016-03-04 8:24 ` [LTP] [PATCH RFC 7/9] ftrace_stress: keep the name of testscipt in sync with tracing file Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 8/9] ftrace_stress: update the trace_options test Li Wang
2016-03-04 8:24 ` [LTP] [PATCH RFC 9/9] ftrace_stress: add two new tests Li Wang
2016-03-17 18:08 ` Cyril Hrubis
2016-03-18 14:08 ` Chunyu Hu
2016-03-21 12:09 ` Cyril Hrubis
2016-03-17 17:19 ` [LTP] [PATCH RFC 8/9] ftrace_stress: update the trace_options test Cyril Hrubis
2016-03-17 17:28 ` Cyril Hrubis
2016-03-18 13:24 ` Chunyu Hu
2016-03-18 13:21 ` Chunyu Hu
2016-03-17 17:07 ` [LTP] [PATCH RFC 6/9] ftrace_stress: skip unsupported tests Cyril Hrubis
2016-03-18 13:08 ` Chunyu Hu
2016-03-17 16:50 ` [LTP] [PATCH RFC 5/9] ftrace_regression: add a new testcase Cyril Hrubis
2016-03-18 7:57 ` Li Wang
2016-03-17 16:49 ` [LTP] [PATCH RFC 4/9] ftrace_regression: add new case to ftrace_regression/ dir Cyril Hrubis
2016-03-17 16:39 ` [LTP] [PATCH RFC 3/9] tracing[2]: reorganize ftrace stress tests to general tests Cyril Hrubis
2016-03-18 10:42 ` Li Wang
2016-03-21 12:21 ` Cyril Hrubis
2016-03-22 8:27 ` Li Wang
2016-03-17 16:29 ` [LTP] [PATCH RFC 1/9] ftrace_stress: remove the useless file ftrace_get_page_size.c Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1457079898-9449-7-git-send-email-liwang@redhat.com \
--to=liwang@redhat.com \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.