From nobody Fri Dec 19 12:31:54 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 710D6225D2 for ; Tue, 19 Dec 2023 14:32:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E14B1C433CC; Tue, 19 Dec 2023 14:32:01 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rFb9Y-00000003MGu-4C2R; Tue, 19 Dec 2023 09:33:01 -0500 Message-ID: <20231219143300.777936212@goodmis.org> User-Agent: quilt/0.67 Date: Tue, 19 Dec 2023 09:32:40 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Shuah Khan Subject: [for-next][PATCH 07/10] tracing/selftests: Add test to test the trace_marker References: <20231219143233.204534014@goodmis.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Steven Rostedt (Google)" Add a test that writes longs strings, some over the size of the sub buffer and make sure that the entire content is there. Link: https://lore.kernel.org/linux-trace-kernel/20231213111527.6a4c9b58@ga= ndalf.local.home Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Mathieu Desnoyers Acked-by: Shuah Khan Signed-off-by: Steven Rostedt (Google) --- .../ftrace/test.d/00basic/trace_marker.tc | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100755 tools/testing/selftests/ftrace/test.d/00basic/trace_mar= ker.tc diff --git a/tools/testing/selftests/ftrace/test.d/00basic/trace_marker.tc = b/tools/testing/selftests/ftrace/test.d/00basic/trace_marker.tc new file mode 100755 index 000000000000..9aa0db2b84fc --- /dev/null +++ b/tools/testing/selftests/ftrace/test.d/00basic/trace_marker.tc @@ -0,0 +1,82 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# description: Basic tests on writing to trace_marker +# requires: trace_marker +# flags: instance + +get_buffer_data_size() { + sed -ne 's/^.*data.*size:\([0-9][0-9]*\).*/\1/p' events/header_page +} + +get_buffer_data_offset() { + sed -ne 's/^.*data.*offset:\([0-9][0-9]*\).*/\1/p' events/header_page +} + +get_event_header_size() { + type_len=3D`sed -ne 's/^.*type_len.*:[^0-9]*\([0-9][0-9]*\).*/\1/p' event= s/header_event` + time_len=3D`sed -ne 's/^.*time_delta.*:[^0-9]*\([0-9][0-9]*\).*/\1/p' eve= nts/header_event` + array_len=3D`sed -ne 's/^.*array.*:[^0-9]*\([0-9][0-9]*\).*/\1/p' events/= header_event` + total_bits=3D$((type_len+time_len+array_len)) + total_bits=3D$((total_bits+7)) + echo $((total_bits/8)) +} + +get_print_event_buf_offset() { + sed -ne 's/^.*buf.*offset:\([0-9][0-9]*\).*/\1/p' events/ftrace/print/for= mat +} + +event_header_size=3D`get_event_header_size` +print_header_size=3D`get_print_event_buf_offset` + +data_offset=3D`get_buffer_data_offset` + +marker_meta=3D$((event_header_size+print_header_size)) + +make_str() { + cnt=3D$1 + # subtract two for \n\0 as marker adds these + cnt=3D$((cnt-2)) + printf -- 'X%.0s' $(seq $cnt) +} + +write_buffer() { + size=3D$1 + + str=3D`make_str $size` + + # clear the buffer + echo > trace + + # write the string into the marker + echo -n $str > trace_marker + + echo $str +} + +test_buffer() { + + size=3D`get_buffer_data_size` + oneline_size=3D$((size-marker_meta)) + echo size =3D $size + echo meta size =3D $marker_meta + + # Now add a little more the meta data overhead will overflow + + str=3D`write_buffer $size` + + # Make sure the line was broken + new_str=3D`awk ' /tracing_mark_write:/ { sub(/^.*tracing_mark_write: /,""= );printf "%s", $0; exit}' trace` + + if [ "$new_str" =3D "$str" ]; then + exit fail; + fi + + # Make sure the entire line can be found + new_str=3D`awk ' /tracing_mark_write:/ { sub(/^.*tracing_mark_write: /,""= );printf "%s", $0; }' trace` + + if [ "$new_str" !=3D "$str" ]; then + exit fail; + fi +} + +test_buffer --=20 2.42.0