From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756767Ab2BGTpO (ORCPT ); Tue, 7 Feb 2012 14:45:14 -0500 Received: from mx1.redhat.com ([209.132.183.28]:25950 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756184Ab2BGTpM (ORCPT ); Tue, 7 Feb 2012 14:45:12 -0500 From: Jiri Olsa To: rostedt@goodmis.org, fweisbec@gmail.com, mingo@redhat.com, paulus@samba.org, acme@ghostprotocols.net, a.p.zijlstra@chello.nl Cc: linux-kernel@vger.kernel.org, aarapov@redhat.com Subject: [PATCHv8 0/8] ftrace, perf: Adding support to use function trace Date: Tue, 7 Feb 2012 20:44:51 +0100 Message-Id: <1328643899-8361-1-git-send-email-jolsa@redhat.com> In-Reply-To: <1327776209-4883-1-git-send-email-jolsa@redhat.com> References: <1327776209-4883-1-git-send-email-jolsa@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org hi, here's another version of perf support for function trace with filter. attached patches: - 1/8 ftrace: Change filter/notrace set functions to return exit code - 2/8 ftrace: Add enable/disable ftrace_ops control interface - 3/8 ftrace, perf: Add open/close tracepoint perf registration actions - 4/8 ftrace, perf: Add add/del tracepoint perf registration actions - 5/8 ftrace: Add FTRACE_ENTRY_REG macro to allow event registration - 6/8 ftrace, perf: Add support to use function tracepoint in perf - 7/8 ftrace: Allow to specify filter field type for ftrace events - 8/8 ftrace, perf: Add filter support for function trace event v8 changes: 1/8 - acked 2/8 - acked 3/8 - acked 4/8 - acked 5/8 - new patch - added FTRACE_ENTRY_REG macro 6/8 - using FTRACE_ENTRY_REG macro to define ftrace event 7/8 - adding filter parameter to FTRACE_ENTRY macro 8/8 - using only walk_pred_tree to check the filter instead using different special filter_ops, v7 changes: 2/7 - using int instead of atomic_t for ftrace_ops::disable - using this_cpu_ptr to touch ftrace_ops::disable - renamed ftrace_ops:disable API void ftrace_function_local_enable(struct ftrace_ops *ops) void ftrace_function_local_disable(struct ftrace_ops *ops) int ftrace_function_local_disabled(struct ftrace_ops *ops) v6 changes: 2/7 - added comments to FTRACE_OPS_FL_* bits enum 5/7 - added more info to the change log regarding ftrace_ops enable/disable 7/7 - rebased to the latest filter changes v5 changes: 7/7 - fixed to properly support ',' in filter expressions v4 changes: 2/7 - FL_GLOBAL_CONTROL changed to FL_GLOBAL_CONTROL_MASK - changed WARN_ON_ONCE() to include the !preempt_count() - changed this_cpu_ptr to per_cpu_ptr ommited Fix possible NULL dereferencing in __ftrace_hash_rec_update (2/8 in v3) v3 changes: 3/8 - renamed __add/remove_ftrace_ops - fixed preemtp_enable/recursion_clear order in ftrace_ops_control_func - renamed/commented API functions - enable/disable_ftrace_function ommited graph tracer workarounf patch 10/10 v2 changes: 01/10 - keeping the old fix instead of adding hash_has_contents func I'll send separating patchset for this 02/10 - using different way to avoid the issue (3/9 in v1) 03/10 - using the way proposed by Steven for controling ftrace_ops (4/9 in v1) 06/10 - added check ensuring the ftrace:function event could be used by root only (7/9 in v1) 08/10 - added more description (8/9 in v1) 09/10 - changed '&&' operator to '||' which seems more suitable in this case (9/9 in v1) thanks, jirka --- include/linux/ftrace.h | 71 ++++++++++++- include/linux/ftrace_event.h | 9 ++- include/linux/perf_event.h | 3 + kernel/trace/ftrace.c | 132 +++++++++++++++++++++--- kernel/trace/trace.h | 34 ++++-- kernel/trace/trace_entries.h | 54 +++++++--- kernel/trace/trace_event_perf.c | 206 ++++++++++++++++++++++++++++-------- kernel/trace/trace_events.c | 12 ++- kernel/trace/trace_events_filter.c | 160 +++++++++++++++++++++++++++- kernel/trace/trace_export.c | 64 ++++++++---- kernel/trace/trace_kprobe.c | 8 ++- kernel/trace/trace_syscalls.c | 18 +++- 12 files changed, 654 insertions(+), 117 deletions(-)