Skip to content

Commit 5450be6

Browse files
Zheng Yejianrostedt
authored andcommitted
selftests/ftrace: Add a basic testcase for snapshot
This testcase is constrived to reproduce a problem that the cpu buffers become unavailable which is due to 'record_disabled' of array_buffer and max_buffer being messed up. Local test result after bugfix: # ./ftracetest test.d/00basic/snapshot1.tc === Ftrace unit tests === [1] Snapshot and tracing_cpumask [PASS] [2] (instance) Snapshot and tracing_cpumask [PASS] # of passed: 2 # of failed: 0 # of unresolved: 0 # of untested: 0 # of unsupported: 0 # of xfailed: 0 # of undefined(test bug): 0 Link: https://lkml.kernel.org/r/[email protected] Cc: <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Signed-off-by: Zheng Yejian <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
1 parent b71645d commit 5450be6

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/sh
2+
# SPDX-License-Identifier: GPL-2.0
3+
# description: Snapshot and tracing_cpumask
4+
# requires: trace_marker tracing_cpumask snapshot
5+
# flags: instance
6+
7+
# This testcase is constrived to reproduce a problem that the cpu buffers
8+
# become unavailable which is due to 'record_disabled' of array_buffer and
9+
# max_buffer being messed up.
10+
11+
# Store origin cpumask
12+
ORIG_CPUMASK=`cat tracing_cpumask`
13+
14+
# Stop tracing all cpu
15+
echo 0 > tracing_cpumask
16+
17+
# Take a snapshot of the main buffer
18+
echo 1 > snapshot
19+
20+
# Restore origin cpumask, note that there should be some cpus being traced
21+
echo ${ORIG_CPUMASK} > tracing_cpumask
22+
23+
# Set tracing on
24+
echo 1 > tracing_on
25+
26+
# Write a log into buffer
27+
echo "test input 1" > trace_marker
28+
29+
# Ensure the log writed so that cpu buffers are still available
30+
grep -q "test input 1" trace
31+
exit 0

0 commit comments

Comments
 (0)