Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751841AbdIRF4N (ORCPT ); Mon, 18 Sep 2017 01:56:13 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:32914 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751737AbdIRF4L (ORCPT ); Mon, 18 Sep 2017 01:56:11 -0400 X-Google-Smtp-Source: AOwi7QAiHnVQnBlIxyfrgqcPeBt2DhRXXE9i0GbUvbX7KHz/mVNkYrNtqSiLu9PDnNzRcotarFPwaQ== From: yuzhoujian X-Google-Original-From: yuzhoujian To: peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, dsahern@gmail.com, namhyung@kernel.org, milian.wolff@kdab.com, arnaldo.melo@gmail.com, yuzhoujian@didichuxing.com Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] Add a new element for the struct perf_tool, and add the --per-event-dump option for perf script Date: Mon, 18 Sep 2017 13:55:19 +0800 Message-Id: <1505714122-39141-2-git-send-email-yuzhoujian@didichuxing.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1505714122-39141-1-git-send-email-yuzhoujian@didichuxing.com> References: <1505714122-39141-1-git-send-email-yuzhoujian@didichuxing.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2193 Lines: 63 Signed-off-by: yuzhoujian --- tools/perf/builtin-script.c | 11 ++++++++++- tools/perf/util/tool.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 378f76c..91b5225 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -57,6 +57,7 @@ static DECLARE_BITMAP(cpu_bitmap, MAX_NR_CPUS); static struct perf_stat_config stat_config; static int max_blocks; +static FILE *per_event_dump_file; unsigned int scripting_max_stack = PERF_MAX_STACK_DEPTH; @@ -2690,6 +2691,7 @@ int cmd_script(int argc, const char **argv) .cpu_map = process_cpu_map_event, .ordered_events = true, .ordering_requires_timestamps = true, + .per_event_dump = false, }, }; struct perf_data_file file = { @@ -2760,6 +2762,8 @@ int cmd_script(int argc, const char **argv) "Show context switch events (if recorded)"), OPT_BOOLEAN('\0', "show-namespace-events", &script.show_namespace_events, "Show namespace events (if recorded)"), + OPT_BOOLEAN('\0', "per-event-dump", &script.tool.per_event_dump, + "print trace output to files named by the monitored events"), OPT_BOOLEAN('f', "force", &symbol_conf.force, "don't complain, do it"), OPT_INTEGER(0, "max-blocks", &max_blocks, "Maximum number of code blocks to dump with brstackinsn"), @@ -2797,7 +2801,12 @@ int cmd_script(int argc, const char **argv) file.path = input_name; file.force = symbol_conf.force; - + for (i = 1; argv[i] != NULL; i++) { + if (strcmp(argv[i], "--per-event-dump") == 0) { + script.tool.per_event_dump = true; + break; + } + } if (argc > 1 && !strncmp(argv[0], "rec", strlen("rec"))) { rec_script_path = get_script_path(argv[1], RECORD_SUFFIX); if (!rec_script_path) diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h index d549e50..ad40931 100644 --- a/tools/perf/util/tool.h +++ b/tools/perf/util/tool.h @@ -75,6 +75,7 @@ struct perf_tool { bool ordered_events; bool ordering_requires_timestamps; bool namespace_events; + bool per_event_dump; enum show_feature_header show_feat_hdr; }; -- 1.8.3.1