On Fri, 26 Dec 2025 17:12:17 +0800 Fushuai Wang fushuai.wang@linux.dev wrote:
When /sys/kernel/tracing/buffer_size_kb is less than 12KB, the test_multiple_writes test will stall and wait for more input due to insufficient buffer space.
This patch check current buffer_size_kb value before the test.
Never use "This patch" in a change log. See Submitting Patches:
https://docs.kernel.org/process/submitting-patches.html#describe-your-change...
Describe your changes in imperative mood, e.g. “make xyzzy do frotz” instead of “[This patch] makes xyzzy do frotz” or “[I] changed xyzzy to do frotz”, as if you are giving orders to the codebase to change its behaviour.
If it is less than 12KB, it temporarily increase the buffer to 12KB, and restore the original value after the tests are completed.
Fixes: 37f46601383a ("selftests/tracing: Add basic test for trace_marker_raw file") Signed-off-by: Fushuai Wang wangfushuai@baidu.com
.../ftrace/test.d/00basic/trace_marker_raw.tc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/ftrace/test.d/00basic/trace_marker_raw.tc b/tools/testing/selftests/ftrace/test.d/00basic/trace_marker_raw.tc index 7daf7292209e..216f87d89c3f 100644 --- a/tools/testing/selftests/ftrace/test.d/00basic/trace_marker_raw.tc +++ b/tools/testing/selftests/ftrace/test.d/00basic/trace_marker_raw.tc @@ -58,7 +58,7 @@ test_multiple_writes() { echo stop > trace_marker # Check to make sure the number of entries is the id (rounded up by 4)
- awk '/.*: # [0-9a-f]* / {
- awk -v ORIG="${ORIG}" '/.*: # [0-9a-f]* / { print; cnt = -1; for (i = 0; i < NF; i++) {
@@ -70,6 +70,7 @@ test_multiple_writes() { # The number of items is always rounded up by 4 cnt2 = int((cnt + 3) / 4) * 4; if (cnt2 != num) {
system("echo \""ORIG"\" > buffer_size_kb");
Why are you doing this in the awk script?
exit 1; } break;@@ -89,6 +90,7 @@ test_buffer() { # The id must be four bytes, test that 3 bytes fails a write if echo -n abc > ./trace_marker_raw ; then echo "Too small of write expected to fail but did not"
exit_fail fiecho $ORIG > buffer_size_kb@@ -99,9 +101,21 @@ test_buffer() { if write_buffer 0xdeadbeef $size ; then echo "Too big of write expected to fail but did not"
exit_fail fiecho $ORIG > buffer_size_kb} +ORIG=`cat buffer_size_kb`
+# test_multiple_writes test needs at least 12KB buffer +NEW_SIZE=12
+if [ ${ORIG} -lt ${NEW_SIZE} ]; then
- echo ${NEW_SIZE} > buffer_size_kb
+fi
test_buffer test_multiple_writes
Could add:
if ! test_multiple_writes ; then echo $ORIG > buffer_size_kb exit_fail fi
instead.
-- Steve
+echo $ORIG > buffer_size_kb