Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1554001pxf; Fri, 9 Apr 2021 11:12:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxP6uteqvFcnZ6rEYVWm0Bq88Kdbr8TNWEHEzuy1yU7HWBXaGoJrfRiWjzRUIMQTeBJziSd X-Received: by 2002:a17:907:e87:: with SMTP id ho7mr16954293ejc.2.1617991920263; Fri, 09 Apr 2021 11:12:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617991920; cv=none; d=google.com; s=arc-20160816; b=od3VGcz34zNWB4xch6YE87QQ62WBUc0VRwwbPXHjIp8tJ5x4M5eJVzu3rU3r/2ZFua kQg4JwYDxiy/6WoIV8p/DpXuu3Ve/9II1US4Q23p5A/RInJSqaFWoIq9zDGWA3z+sAXB 7yOL3QgPtqcx3dgfHLpNA1gBZnLvNxLNnvNlJhff+z7bQSxov5y0nU4nzrX1nHNgjc2u I+i8R6mpsgtDdH/9ADY16XCYly0lc2oWh6K0/cSNlVKLlbjf4O/WoDGUwvHf9nua9zOM oqEJGK+IILZAdUN+3j0Jyzkn3xhwFCaNwwsEephRbr52zey4AKV5dZ1+3bqs+ZJ273ub A0eg== 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:date:subject:cc:to:from:dkim-signature; bh=5CNBQKIGe8uXpriUZJHtU/NHWRKcPCBs0Xp0mmWQC1o=; b=cs2YYUT23SUCLxFAGbXpkC/nUUjBzVoqyjQe8isiSoxqYOmtI7s9ishR5T+5z1p8Zu ojE4iNhCZDLrVijPyVrTSvbFQMxXEYhntIQ91C8JSV5rhg1NbWKBCNdqo3zkEBBHhlqg zEPUkFnxJrlNwgmKNlHIEjJnwVasP2vyC37V5hxLiXApOtT+l70HZoLUYG9PCUCd88g8 NDKN6/O+AVeZq/QdBN9IvAPb2z5Q2S8jENCUsuF2nl6QZQARsl2OAXc6bN8YFaiP0w9T 2KgNtVGxSUFFguFMtPDs1T9hOlV9SAA6ZG8mSaQffevLMDu49+AiAeRB3i+fegdJhhaL mobQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MMa2FaUd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y22si2567155eds.373.2021.04.09.11.11.37; Fri, 09 Apr 2021 11:12:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MMa2FaUd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234487AbhDISLC (ORCPT + 99 others); Fri, 9 Apr 2021 14:11:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48934 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234485AbhDISLA (ORCPT ); Fri, 9 Apr 2021 14:11:00 -0400 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79785C061761 for ; Fri, 9 Apr 2021 11:10:46 -0700 (PDT) Received: by mail-ej1-x629.google.com with SMTP id u21so10017009ejo.13 for ; Fri, 09 Apr 2021 11:10:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5CNBQKIGe8uXpriUZJHtU/NHWRKcPCBs0Xp0mmWQC1o=; b=MMa2FaUd96cdQJ86rg9WFKDx6meq5+7rehW0AaK15x2icSaIKPxp/2g4gDovCNVRb+ ixzRn5HjeRT6uAbGetA558fTcbiDMub0AOnwBaxrTDjebdaQ7maKpa9JYkbQOLttgCK2 /Kbuf8rNUDMonuu+2oRZgql3+k9ydCbhODdCArOEuyPV2d5U5Hug369hC9WyyUiTQyc4 3wNNMr7h59sKmPZ6uQ+c3BWcXth8PeUr5oa3NpWl94zusdlb7W7FVmjYkGjv7vfIrMve v0a/k8XhFmP5Z2BwMb436oB3IfhefjXQWfAg+zbzlhk4EVu1QvlNCxP+gxPUmfN+nIt2 M4zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5CNBQKIGe8uXpriUZJHtU/NHWRKcPCBs0Xp0mmWQC1o=; b=ST+wEiQe7XLZIQHNJcvbjh6KKL7kx1FxGhwStmLCfPGfUuJ0x/r/qJ7MovpTlJrk2V bl77mpZppbfSJ/pTyu105gbEBpj5gXhyu/ZpM1Foubg+cBjD3b6evFeDc/eBTQ4qiAOd MHNUv9Wb1CYebWjc1+O1N1jT5Tcpi9d0Z7oexRRNemFV96CbmKOvaPPZbWozSVKTpy5b mOBlSt/brjfaus/f0yUxi/OESa+5YxKYEDQ9pabGJOKU4DOdYXSyDm45MNi8f5lhOdsV q/oElSe7WiwUPSLRBD/6qUnOWnKdNvUWqfgpDU3WBHi7Wbgr8MMnTo944bTAHWirJQbb dQ+Q== X-Gm-Message-State: AOAM5334qN3gzdy4qRF9IiYgwiJ9zf6GNTeyi3uduLDr9CdMJmqNVVco Ivqp65r81WLQR1eExAQgUz1SW+4306ALYA== X-Received: by 2002:a17:906:f9c3:: with SMTP id lj3mr6466491ejb.134.1617991845057; Fri, 09 Apr 2021 11:10:45 -0700 (PDT) Received: from localhost.localdomain ([95.87.199.133]) by smtp.gmail.com with ESMTPSA id s20sm1806303edu.93.2021.04.09.11.10.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 11:10:44 -0700 (PDT) From: "Yordan Karadzhov (VMware)" To: linux-kernel@vger.kernel.org Cc: rostedt@goodmis.org, tglx@linutronix.de, peterz@infradead.org, "Yordan Karadzhov (VMware)" Subject: [PATCH v3 0/5] Add "func_no_repete" tracing option Date: Fri, 9 Apr 2021 21:10:26 +0300 Message-Id: <20210409181031.26772-1-y.karadz@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The new option for function tracing aims to save space on the ring buffer and to make it more readable in the case when a single function is called number of times consecutively: while (cond) do_func(); Instead of having an identical records for each call of the function we will record only the first call, followed by an event showing the number of repeats. v3 changes: * FUNC_REPEATS_SET_DELTA_TS macro has been optimised. * Fixed bug in func_set_flag(): In the previous version the value of the "new_flags" variable was not properly calculated because I misinterpreted the meaning of the "bit" argument of the function. This bug in v2 had no real effect, because for the moment we have only two "function options" so the value of "new_flags" was correct, although its way of calculating was wrong. v2 changes: * As suggested by Steven in his review, we now record not only the repetition count, but also the time elapsed between the last repetition of the function and the actual generation of the "func_repeats" event. 16 bits are used to record the repetition count. In the case of an overflow of the counter a second pair of "function" and "func_repeats" events will be generated. The time interval gets codded by using up to 48 (32 + 16) bits. Yordan Karadzhov (VMware) (5): tracing: Define new ftrace event "func_repeats" tracing: Add "last_func_repeats" to struct trace_array tracing: Add method for recording "func_repeats" events tracing: Unify the logic for function tracing options tracing: Add "func_no_repeats" option for function tracing kernel/trace/trace.c | 27 ++++ kernel/trace/trace.h | 25 ++++ kernel/trace/trace_entries.h | 28 +++++ kernel/trace/trace_functions.c | 222 ++++++++++++++++++++++++++++----- kernel/trace/trace_output.c | 47 +++++++ 5 files changed, 321 insertions(+), 28 deletions(-) -- 2.25.1