From patchwork Wed Dec 13 00:23:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 177715 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp8088327vqy; Tue, 12 Dec 2023 16:22:45 -0800 (PST) X-Google-Smtp-Source: AGHT+IGxFq7lsnZlwMuvPACfuurtSuM/A2eqgo+u+6czVSaNMoeW73qWbOrgngoD3whZ113KyvWl X-Received: by 2002:a17:902:6e10:b0:1d0:44fd:feb4 with SMTP id u16-20020a1709026e1000b001d044fdfeb4mr3288538plk.10.1702426965525; Tue, 12 Dec 2023 16:22:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702426965; cv=none; d=google.com; s=arc-20160816; b=bpGyhuSAb2UD3QalfinUUcYVk/X7k1kzKWQFOTHRd8C8zvm91eB/KIf7kq5a8opTST 3ByClX5Kdvz8NRqS60iIlyyGyaUtbnp5rOuJepM/SnRxXeyFgfgYnkSMGHeeE4agEyuU If8fxO4zzzFL09UScfpILYGZFifELVD+UzkpaFY6N95OUgBoMAyXt9c9wvhHhfgugScL 6Nv6fdUtr1LqhivzJAcmRTiwbaSCEdlbaLgL5YMsBzergFLvaL2axjDUysrtf10jGnP8 AAkZpo/fT7rltuWeog5CiZyZ9/WPP9IqcRrJ848hfFwxIwlrBULVUkzNKZxq2er8nEgg LDoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:subject:cc:to:from:date; bh=IbWr8K2Vx+/NXeqI7vQRBzQqxCb0YrguBFFw05g/4b8=; fh=NdLKlkF21tthkjg7TFYsCcVE9+mNBwBIZGGjccGgMeM=; b=PQbf3hWB/e/b3GjzpN64/BI4gFk5M/ENHCD6l3E/0tVlIF1L+vX2ukMQZbk9ZJLo9n 6GYJqxUoaKsTKJ8LJPNSxLfeO6s7nlSf6vm5AD79qUfiPpBNgXoBCcRotTvcs6mrbc6C 7AOIGQ3Ay0i0OXiVFy7DBYnNHN+3kE5fvFdc6kdit7adpgd1APRS+hfwpSI0NuWiErX3 ZN+80h/zOb11XcBiTakJJF8qRoRs0AmAAoe0bGTRE/b6tUElzCL4bZYCVYC5lhxBGWUK ErktRmhA27eXGVr3qRToCSONVvQR/rnYfSnqXWjaneRptUTZDDnpItXgyJ0/wLhBZN64 kVDw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id bj3-20020a170902850300b001d092e9cbbfsi8540136plb.445.2023.12.12.16.22.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Dec 2023 16:22:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 912A8804A64D; Tue, 12 Dec 2023 16:22:39 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377735AbjLMAWa (ORCPT + 99 others); Tue, 12 Dec 2023 19:22:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232620AbjLMAW3 (ORCPT ); Tue, 12 Dec 2023 19:22:29 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 503CE92 for ; Tue, 12 Dec 2023 16:22:36 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 04D0FC433C7; Wed, 13 Dec 2023 00:22:34 +0000 (UTC) Date: Tue, 12 Dec 2023 19:23:17 -0500 From: Steven Rostedt To: LKML , Linux Trace Kernel Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Shuah Khan , linux-kselftest@vger.kernel.org Subject: [PATCH v3] tracing/selftests: Add test to test the trace_marker Message-ID: <20231212192317.0fb6b101@gandalf.local.home> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 12 Dec 2023 16:22:39 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785124058081872150 X-GMAIL-MSGID: 1785124058081872150 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. Signed-off-by: Steven Rostedt (Google) --- Changes since v2: https://lore.kernel.org/linux-trace-kernel/20231212151632.25c9b67d@gandalf.local.home - Realized with the upcoming change of the dynamic subbuffer sizes, that this test will fail if the subbuffer is bigger than what the trace_seq can hold. Now the trace_marker does not always utilize the full subbuffer but the size of the trace_seq instead. As that size isn't available to user space, we can only just make sure all content is there. .../ftrace/test.d/00basic/trace_marker.tc | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100755 tools/testing/selftests/ftrace/test.d/00basic/trace_marker.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..b24aff5807df --- /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=`sed -ne 's/^.*type_len.*:[^0-9]*\([0-9][0-9]*\).*/\1/p' events/header_event` + time_len=`sed -ne 's/^.*time_delta.*:[^0-9]*\([0-9][0-9]*\).*/\1/p' events/header_event` + array_len=`sed -ne 's/^.*array.*:[^0-9]*\([0-9][0-9]*\).*/\1/p' events/header_event` + total_bits=$((type_len+time_len+array_len)) + total_bits=$((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/format +} + +event_header_size=`get_event_header_size` +print_header_size=`get_print_event_buf_offset` + +data_offset=`get_buffer_data_offset` + +marker_meta=$((event_header_size+print_header_size)) + +make_str() { + cnt=$1 + # subtract two for \n\0 as marker adds these + cnt=$((cnt-2)) + printf -- 'X%.0s' $(seq $cnt) +} + +write_buffer() { + size=$1 + + str=`make_str $size` + + # clear the buffer + echo > trace + + # write the string into the marker + echo -n $str > trace_marker + + echo $str +} + +test_buffer() { + + size=`get_buffer_data_size` + oneline_size=$((size-marker_meta)) + echo size = $size + echo meta size = $marker_meta + + # Now add a little more the meta data overhead will overflow + + str=`write_buffer $size` + + # Make sure the line was broken + new_str=`awk ' /tracing_mark_write:/ { sub(/^.*tracing_mark_write: /,"");printf "%s", $0; exit}' trace` + + if [ "$new_str" = "$str" ]; then + exit fail; + fi + + # Make sure the entire line can be found + new_str=`awk ' /tracing_mark_write:/ { sub(/^.*tracing_mark_write: */,"");printf "%s", $0; }' trace` + + if [ "$new_str" != "$str" ]; then + exit fail; + fi +} + +test_buffer