Received: by 2002:a89:2c3:0:b0:1ed:23cc:44d1 with SMTP id d3csp90976lqs; Mon, 4 Mar 2024 16:25:39 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUb6CUMvdgFfeWC8yMG+Te2RU4PM69kAO+IkKNMh70+ZGGLnjefbnNzAzzNnfyhAt5god3Ob8UOpgqsNI6GmJWy7VdXcdsNT0PSH9W4Vg== X-Google-Smtp-Source: AGHT+IFqK7kkVbgipAN+HSoceyCpDS94UzAkXx/Avfk9ktV/fbJc6q2MYtKRXcXbWOrnEd1C9vO1 X-Received: by 2002:a17:906:355a:b0:a43:6136:60ff with SMTP id s26-20020a170906355a00b00a43613660ffmr6992387eja.72.1709598339394; Mon, 04 Mar 2024 16:25:39 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709598339; cv=pass; d=google.com; s=arc-20160816; b=br6nSNX8btwxeIb57lR6QeiE66PFsuRdScWykixUWtaFbB4yI9bhibQHrWJPGjRQC1 Qha0qdcloyINOuE0o+YyAOyE42sVLuvEvdOgVzonBzese1Ir/296ewjpddwnUFD7hIjA 2nE3DyIjP7hPA3Lme7bXBtjn+a/VewD5KyI2dIy4w1BthzB+tYoI3jGy2wNTnpBuipNk CY1eLFcGnssLgNtB6el8ylD9mti2MBgGz7BBvrx08yI5nTQq0oZTcuKbbAiJTJdeE1Uy HCSicxeub5hPNL5yrW/Xcx7RNqDXppad9y7v0QPq1xiZQClS3OznOHnO0jcAtuKrA1pQ scWg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:subject:cc:to:from :date; bh=ZUOUj4slPdsyZtNzkzcf/t7SZUXuJM7JMj9+4PG2dxo=; fh=mELnVPxQmV5jbNRDIkZPzwHwvyJ1R2nkFEb/WVcKKJI=; b=iK9JbESoVJDXJsHwj3VFAs1AqOUe/F7MLq9GZceqmz1wfEHOv1Zwg2rO4SP0IK1wXm 6Ojkfvgi+ePh9hn1etANiTqyes5MYYjCQBTZz3mWJ2Ra45gdhip6BwJR7G7ZRmDzZ6Z8 8DdohzHe3R2G09iNZAWtxGY0aWxClODQPXMGS+ZMsfoM+Be/Z9NckDgr/EGvfhSA35dY dgr9CF7DiUzGLt8Y7DFn1czq2yRnRog7m7Z/XL4ImU3dez1RnxQTdXT51T0IwMtaAKhN clY2ECSA/vHTmjI6tQevlW+Io0l5JX1NYF4wwT93/rqDVQoPUOtXUASfoJfgmTJVYcaT rTxA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-91449-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-91449-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id nb20-20020a1709071c9400b00a44c5c30ec0si2775993ejc.268.2024.03.04.16.25.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Mar 2024 16:25:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-91449-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-91449-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-91449-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id E81731F223FC for ; Tue, 5 Mar 2024 00:25:38 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1164F4C96; Tue, 5 Mar 2024 00:25:24 +0000 (UTC) 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 8ABCF2CA9; Tue, 5 Mar 2024 00:25:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709598323; cv=none; b=hIZzVG7fp0oBHVMzeLfXCSadXkI7K2ZjNPOGJManAFLsXrD8ipgBRq8Nna0lOxYKn+g4SdnVt/74tYRT/sbKQoY3aKhvpy/sSetilyyLUPBa9U/VAdc31/D6w0GjpUiS4ZGFZhrBq3uyYoYT3LErqMxJyAk3Y6yzfJ00g41gIEU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709598323; c=relaxed/simple; bh=H7au/HmPpb0snM2lhXV4u34jsf91RboakLb53PykwYk=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type; b=Qim2uBMl0bJl4/HrHAOll3aXVYKhpjVzaEPOnEr/Nop+r2A2abvU43gC4GoHKO5puzT1Rcwlj975sPMrWtQisM40zHNN8Zs2pvdOy014D+tV0tbQPYQqdtaI1g6oNQCRslR7EUf30HJIrTrAn32bqDAFacr1spSESVT/uwNMCD8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6CF6AC43390; Tue, 5 Mar 2024 00:25:22 +0000 (UTC) Date: Mon, 4 Mar 2024 19:27:10 -0500 From: Steven Rostedt To: LKML , Linux Trace Kernel Cc: Masami Hiramatsu , Mathieu Desnoyers , Linus Torvalds , Sachin Sant Subject: [PATCH] tracing: Have trace_marker writes be just half of TRACE_SEQ_SIZE Message-ID: <20240304192710.4c99677c@gandalf.local.home> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit From: "Steven Rostedt (Google)" Since the size of trace_seq's buffer is the max an event can output, have the trace_marker be half of the entire TRACE_SEQ_SIZE, which is 4K. That will keep writes that has meta data written from being dropped (but reported), because the total output of the print event is greater than what the trace_seq can hold. Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8198bfc54b58..d68544aef65f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -7320,6 +7320,17 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, if ((ssize_t)cnt < 0) return -EINVAL; + /* + * TRACE_SEQ_SIZE is the total size of trace_seq buffer used + * for output. As the print event outputs more than just + * the string written, keep it smaller than the trace_seq + * as it could drop the event if the extra data makes it bigger + * than what the trace_seq can hold. Half he TRACE_SEQ_SIZE + * is more than enough. + */ + if (cnt > TRACE_SEQ_SIZE / 2) + cnt = TRACE_SEQ_SIZE / 2; + meta_size = sizeof(*entry) + 2; /* add '\0' and possible '\n' */ again: size = cnt + meta_size; @@ -7328,11 +7339,6 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, if (cnt < FAULTED_SIZE) size += FAULTED_SIZE - cnt; - if (size > TRACE_SEQ_BUFFER_SIZE) { - cnt -= size - TRACE_SEQ_BUFFER_SIZE; - goto again; - } - buffer = tr->array_buffer.buffer; event = __trace_buffer_lock_reserve(buffer, TRACE_PRINT, size, tracing_gen_ctx()); -- 2.43.0