Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp732529imu; Wed, 16 Jan 2019 06:46:05 -0800 (PST) X-Google-Smtp-Source: ALg8bN4RFbxOwIH8EBB82C2mf5FtJufvdj+tGlnRNRSM4Ji14KYInt7VBTjVDnBa/bC+KHyDG/N4 X-Received: by 2002:a63:b4c:: with SMTP id a12mr9329742pgl.131.1547649965310; Wed, 16 Jan 2019 06:46:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547649965; cv=none; d=google.com; s=arc-20160816; b=TQaATluD8sE8ksli5iM5SFH0kDc/bzp0v5s5qUX5imnE+MILZCivAWC10AoZATrDoH KBaDvnZN7lZYY+GN9CTwi5MWqfPyzOzqOaeXuKuodtNZj1KBRGslbHM2myIxzT8AF3Wy p7rUTrZURfWvjydclOWlWHlIMVgjQNNGkiqJFNvkYGPYKDOM70F3PVrzDo5/J+Cc2RH0 11a+JLvDDaI9+N8FwH+6rPG51DoRgdS2fGpB03CUQ0LQnMJiaYyazZC4Wzq4PfPwCn++ wo9QkT+hRW5F2cnSiGue5FrngNOM5bhps/8/ogu9enRMkVdYvkkEgFsbVp6LALdls8eF fPGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=EnsECSKXy5SQ31hsUpWgQfsNoFBgptB3cWAI7qwjxyg=; b=lJoYACZBjiHu4KRu6T3oDHaXfcVY++N1mIVC+lbaLo6C1zz5it6rLbWM4Dy0c2DrDb rmGcxpjGD/f6C/4h8S6wKuo0I+vx3O+aMuvS4vaBh29sFIEp4jGmshkDtcrM5A8pVGmy dkWTKs5z1kH+ONz37Akg9DPZt7xPXIuaeIU05abxxsGjBcZq6J2AeOzkCKYS6H/LNfO1 HzZzNs7RqLyKERBuTaZaO4qERa5SRR9cMr5uG62CiRqL8GKBcfULS2Zx+AWs2+NPdWAE VfDfEFBpIKElm+IMoVA+Ur5bHqucKi8A+qsPsealpmBO9Qy2r+9jaOKNBnvRTiXUrzdw lPKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=siifMK5x; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 61si4000256plz.117.2019.01.16.06.45.48; Wed, 16 Jan 2019 06:46:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=siifMK5x; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390862AbfAOWGJ (ORCPT + 99 others); Tue, 15 Jan 2019 17:06:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:49050 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390702AbfAOWGJ (ORCPT ); Tue, 15 Jan 2019 17:06:09 -0500 Received: from localhost.localdomain (c-98-220-238-81.hsd1.il.comcast.net [98.220.238.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C421620866; Tue, 15 Jan 2019 22:06:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1547589967; bh=bxY+hduN5Bg/eM6guqgLBuB1Vb5UUTMGOi4A2hHy6FI=; h=From:To:Cc:Subject:Date:From; b=siifMK5xq8B1kLAm5uixudgMnLJ9A6RdK/NDC3AMduEv1u9/r14GDliip6EKbCoXd VJrDj9twd+7zEbqnKu46wLZXmBh/jnYNiaaF5UpgzC8MrjXPTQ5mCxMOQwXETj9kQk vgOwB/7EpxIYgR4QokEGSG4SwRyzKLY8b4ESICFw= From: Tom Zanussi To: rostedt@goodmis.org Cc: tglx@linutronix.de, mhiramat@kernel.org, namhyung@kernel.org, vedang.patel@intel.com, bigeasy@linutronix.de, joel@joelfernandes.org, mathieu.desnoyers@efficios.com, julia@ni.com, linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org Subject: [PATCH v12 00/16] tracing: Hist trigger snapshot and onchange additions Date: Tue, 15 Jan 2019 16:05:44 -0600 Message-Id: X-Mailer: git-send-email 2.14.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tom Zanussi Hi, This is v12 of the hist trigger snapshot and onchange additions patchset. It addresses some comments from Namhyung regarding the 'tracing: Add alternative synthetic event trace action syntax' patch to remove parens and change the documentation to emphasize the trace() form of the synthetic event generation command. Thanks, Tom v11->v12 changes: - Removed parens from the param list specification in the trace() command description - Changed the Documentation for synthetic event generation to emphasize the trace() form over the function-call form. v10->v11 changes: - Updated to use str_has_prefix() for static strings v9->v10 changes: - Updated to use strncmp_prefix() for static strings v8->v9 changes: - Moved v8 patches 17-22 to a separate series - Moved track_data.var_ref_idx removal into 'tracing: Generalize hist trigger onmax and save action' - Merged 'tracing: Add hist trigger handler.action documentation' into 'tracing: Refactor hist trigger action code' - Updated patches to change all strlen() to sizeof() for string constants - Moved test cases to the end of the series v7->v8 changes: - Removed /dev/null redirection from test cases - Replaced event disable with tracing_on disable instead - New patch to remove hist_field.var_idx and track_data.var_ref_idx - New patch to use var_refs[] array for reference checking - New patch to remove open-coding of var_ref count manipulation - New patch to use var_refs[] array to destroy var_refs - New patch to remove synth_var_refs[] now that var_refs[] is used - New patch to add comments to variable-related fields - Added various new comments in the patches to clarify other things - Replaced the convoluted logic mentioned by Namhyung in update_track_val with wrappers and simpler check/save logic as suggested - Rebased to latest ftrace/core including Masami's dynamic event framework changes v6->v7 changes: - Removed unnecessary HANDLER_ONMAX checks from onmax_print()/create() - Moved handler assignment to acion_parse() - Changed goto in ATION_TRACE case in action_create() to return - Changed EINVAL to EEXIST in action_create() ACTION_SAVE case - Made the return logic in create_actions() more consistent - Merged 'tracing: Move hist trigger key printing into a separate function' into 'tracing: Add hist trigger snapshot() action' - Updated the new snapshot, onchange, and trace test cases to match 4.20 kselftest changes. - Added new xfail test case that make sure certain unsupported handler/action combinations fail as expected. - While updating the test cases, realized that the other testcases in the inter-event subdir needed SPDX license updates, so added them. v5->v6 changes: - Added new Documentation patch explaining handler.action - Added new README patch explaining handler.action - Added separate snapshot() Documentation - Added new snapshot() test case - Updated README with snapshote() - Added separate onchange() Documentation - Added separate onchange() test case - Updated README with onchange() - Added separate trace() test case - Updated README with trace() and () syntax v4->v5 changes: - added 'trace' keyword test case - added 'onchange' handler test case v3->v4 changes: - added 'trace' keyword for generating synthetic events - fix elt_data leak - changed cond_update to cond_update_fn_t v2->v3 changes: - fixed problem where trace actions were only being allowed for onmatch handlers - now trace actions can be used with any handler. - fixed problem where no action was being assigned to onmatch handlers if save or snapshot actions were specified. v1->v2 changes: - added missing tracing_cond_snapshot_data() definition for when CONFIG_TRACER_SNAPSHOT not defined - removed an unnecessary WARN_ON() in track_data_snapshot_print() Original text: This patchset adds some useful new functions to the hist trigger code: a snapshot action and an onchange handler. In order to make it easier to add these and in the process make the code more generic, I separated the code into explicit 'handlers' and 'actions', handlers being things like 'onmax' and 'onchange', and 'actions' being things like 'take a snapshot' or 'save some fields'. The first few patches do that basic refactoring, which make it easier to add the subsequent changes that arbitrarily combine actions and handlers. The fourth patch adds a 'conditional snapshot' capability that via a new tracing_snaphot_cond() function extends the existing snapshot code. It allows the caller to associate some user data with the snapshot that can be checked and saved in an update() callback whose return value determines whether the snapshot should be taken or not. The remaining patches finally add the new snapshot action and onchange handler functionality - please see those patches for details and some examples. Thanks, Tom The following changes since commit 67748dbeaf2b1240c0b87588df4bb0fb9471a751: sh: ftrace: Fix missing parenthesis in WARN_ON() (2019-01-08 10:19:02 -0600) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git ftrace/hist-snapshot-onchange-v12 Tom Zanussi (16): tracing: Use str_has_prefix() in synth_event_create() tracing: Refactor hist trigger action code tracing: Make hist trigger Documentation better reflect actions/handlers tracing: Split up onmatch action data tracing: Generalize hist trigger onmax and save action tracing: Add conditional snapshot tracing: Add hist trigger snapshot() action tracing: Add hist trigger snapshot() action Documentation tracing: Add hist trigger onchange() handler tracing: Add hist trigger onchange() handler Documentation tracing: Add alternative synthetic event trace action syntax tracing: Add SPDX license GPL-2.0 license identifier to inter-event testcases tracing: Add hist trigger snapshot() action test case tracing: Add hist trigger onchange() handler test case tracing: Add alternative synthetic event trace action test case tracing: Add hist trigger action 'expected fail' test case Documentation/trace/histogram.rst | 316 +++++- kernel/trace/trace.c | 176 +++- kernel/trace/trace.h | 56 +- kernel/trace/trace_events_hist.c | 1093 +++++++++++++++----- kernel/trace/trace_events_trigger.c | 2 +- kernel/trace/trace_sched_wakeup.c | 2 +- .../inter-event/trigger-action-hist-xfail.tc | 30 + .../inter-event/trigger-extended-error-support.tc | 1 + .../inter-event/trigger-field-variable-support.tc | 1 + .../trigger-inter-event-combined-hist.tc | 1 + .../inter-event/trigger-multi-actions-accept.tc | 1 + .../inter-event/trigger-onchange-action-hist.tc | 28 + .../inter-event/trigger-onmatch-action-hist.tc | 1 + .../trigger-onmatch-onmax-action-hist.tc | 1 + .../inter-event/trigger-onmax-action-hist.tc | 1 + .../inter-event/trigger-snapshot-action-hist.tc | 43 + .../trigger-synthetic-event-createremove.tc | 1 + .../inter-event/trigger-trace-action-hist.tc | 42 + 18 files changed, 1470 insertions(+), 326 deletions(-) create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-action-hist-xfail.tc create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-onchange-action-hist.tc create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-snapshot-action-hist.tc create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-trace-action-hist.tc -- 2.14.1