From patchwork Tue Dec 19 18:54:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 18324 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:24d3:b0:fb:cd0c:d3e with SMTP id r19csp2155310dyi; Tue, 19 Dec 2023 10:56:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IFJKfRTBcCfk+3mnFbt18MZ+NLEjeS3nIkL/e/zA2Zh8kSu41jMRYMuCja8GgrTMfNZ7h/H X-Received: by 2002:a05:620a:2689:b0:77e:fba3:a23b with SMTP id c9-20020a05620a268900b0077efba3a23bmr20332048qkp.149.1703012179699; Tue, 19 Dec 2023 10:56:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703012179; cv=none; d=google.com; s=arc-20160816; b=VyN6VvBsvck5r3xtOJ8kXjY3+bLKY5txgzvgbI+f6t8cte0Nj662350Xm1306q+t2j O+SweFatboiWgCDBKCelUCFaZHpCR0ATb/64KK1lTxMg2/QpF4ifFZSMLEFb5JFe4y6f i5YABwq4jRYErWo1PrqsODTi+G+DzavP2dtZEF4+iBPsQpj1OqRhMpHylZHRXr1CRv8A n9SNkIGmkGCCUlHSItg3OER0ux3wBbl63w2gIqCPXs0z6Ng+89JJOdh0UWXK67q0ccXQ T1ZkRjAROc/aMkNPm3NaInbyGSg8jdh1+RFaTrdP9X5W7KdaYmErtgjHur+wb4qMSiC1 AZ4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-id:precedence:subject:cc:to :from:date:user-agent:message-id; bh=6MelQUl4VYJo+s+ruHzk1Gm65seD9sE3lxzUpzBB7vg=; fh=pL1t9p0RxD5qCgSUniSa3P4+XmpksJYPzX6TE+dndao=; b=Ul90nWSvu80itWg2oKMtWHboi2Az+tZ3Y72PZbj2leRuKHa2qTu2Mt/kwmQaAjX7uX 19p2bMJVZEyrICSbduj1pCMy24Hk5en+ie/1ivlLVytrXT025wVVssFTvJYdj98P29Ba otIudJDn2rPvH2JlMHhpWWyD6v/12/nJiwEvuA9V0YNEzwsB039w0RggaAoHW/pr8k1u hC6c426zftIfwt189SY23iOkZtrZlOlQAY6FKtkaglieDfTUQjWwCH/GqKExyE75hQuk /qlqb3ubLeoRecLPoyKKpLO6XzvSVzNwczPp+4ZEekc9PoKhY2hVtSh7ev3dSrOYjDwv NLwA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-5834-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-5834-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id a10-20020a05620a102a00b00776ff8c1216si25796090qkk.772.2023.12.19.10.56.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Dec 2023 10:56:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-5834-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-5834-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-5834-ouuuleilei=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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 30C9C1C21476 for ; Tue, 19 Dec 2023 18:56:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id DFB9B3A1B3; Tue, 19 Dec 2023 18:55:30 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org 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 B176D38DFA; Tue, 19 Dec 2023 18:55:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 481CBC433C7; Tue, 19 Dec 2023 18:55:28 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rFfGV-00000003QzN-2fpf; Tue, 19 Dec 2023 13:56:27 -0500 Message-ID: <20231219185414.474197117@goodmis.org> User-Agent: quilt/0.67 Date: Tue, 19 Dec 2023 13:54:14 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Tzvetomir Stoyanov , Vincent Donnefort , Kent Overstreet Subject: [PATCH v5 00/15] ring-buffer/tracing: Allow ring buffer to have bigger sub buffers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785737699377987235 X-GMAIL-MSGID: 1785737699377987235 Note, this has been on my todo list since the ring buffer was created back in 2008. Tzvetomir last worked on this in 2021 and I need to finally get it in. His last series was: https://lore.kernel.org/linux-trace-devel/20211213094825.61876-1-tz.stoyanov@gmail.com/ With the description of: Currently the size of one sub buffer page is global for all buffers and it is hard coded to one system page. The patch set introduces configurable ring buffer sub page size, per ring buffer. A new user space interface is introduced, which allows to change the sub page size of the ftrace buffer, per ftrace instance. I'm pulling in his patches mostly untouched, except that I had to tweak a few things to forward port them. The issues I found I added as the last 7 patches to the series, and then I added documentation and a selftest, and then changed the UI file from buffer_subbuf_order to buffer_subbuf_size_kb. Basically, events to the tracing subsystem are limited to just under a PAGE_SIZE, as the ring buffer is split into "sub buffers" of one page size, and an event can not be bigger than a sub buffer. This allows users to change the size of a sub buffer by the order: echo 3 > /sys/kernel/tracing/buffer_subbuf_order [ last patch updates this to: echo 32 > /sys/kernel/tracing/buffer_subbuf_size_kb ] Will make each sub buffer a size of 8 pages (32KB), allowing events to be almost as big as 8 pages in size (sub buffers do have meta data on them as well, keeping an event from reaching the same size as a sub buffer). Changes since v4: https://lore.kernel.org/linux-trace-kernel/20231215175502.106587604@goodmis.org/ - Rebase on latest trace/core - Fixed a kerneldoc issues reported by kernel test robot Changes since v3: https://lore.kernel.org/all/20231213181737.791847466@goodmis.org/ - Rebase on trace/core: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git/commit/?h=trace/core&id=59c28cc95f0a9f5556561e2416af4ecf86184b71 Changes since v2: https://lore.kernel.org/all/20231213021914.361709558@goodmis.org/ - Fixed up the subbuf tests to ignore multiple spaces after before the 'buf' string (same fix as was done for the trace_marker test). - This time include Cc'ing linux-trace-kernel :-p Changes since v1: https://lore.kernel.org/all/20231210040448.569462486@goodmis.org/ - Add the last patch that changes the ABI from a file called: buffer_subbuf_order to buffer_subbuf_size_kb That is, I kept the old interface the same, but then added the last patch that converts the interface into the one that makes more sense. I like keeping this in the git history, especially because of the way the implemantion is. - I rebased on top of trace/core in the: git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git - I made the tests a bit more advanced. Still a smoke test, but it now checks if the string written is the same as the string read.