From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932969AbcDFHJu (ORCPT ); Wed, 6 Apr 2016 03:09:50 -0400 Received: from terminus.zytor.com ([198.137.202.10]:57946 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754567AbcDFHJs (ORCPT ); Wed, 6 Apr 2016 03:09:48 -0400 Date: Wed, 6 Apr 2016 00:09:28 -0700 From: tip-bot for Arnaldo Carvalho de Melo Message-ID: Cc: milian.wolff@kdab.com, tglx@linutronix.de, adrian.hunter@intel.com, dsahern@gmail.com, acme@redhat.com, jolsa@kernel.org, linux-kernel@vger.kernel.org, wangnan0@huawei.com, mingo@kernel.org, namhyung@kernel.org, hpa@zytor.com Reply-To: tglx@linutronix.de, milian.wolff@kdab.com, adrian.hunter@intel.com, dsahern@gmail.com, wangnan0@huawei.com, mingo@kernel.org, namhyung@kernel.org, hpa@zytor.com, linux-kernel@vger.kernel.org, jolsa@kernel.org, acme@redhat.com To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf trace: Introduce function to set the base timestamp Git-Commit-ID: e6001980c61b45ef090e2b4c9c1953ef897cdeb0 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: e6001980c61b45ef090e2b4c9c1953ef897cdeb0 Gitweb: http://git.kernel.org/tip/e6001980c61b45ef090e2b4c9c1953ef897cdeb0 Author: Arnaldo Carvalho de Melo AuthorDate: Thu, 31 Mar 2016 15:16:28 -0300 Committer: Arnaldo Carvalho de Melo CommitDate: Fri, 1 Apr 2016 18:46:24 -0300 perf trace: Introduce function to set the base timestamp That is used in both live runs, i.e.: # trace ls As when processing events recorded in a perf.data file: # trace -i perf.data Cc: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-901l6yebnzeqg7z8mbaf49xb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/builtin-trace.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index c45c1cf..99daeed 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -2400,6 +2400,14 @@ static bool skip_sample(struct trace *trace, struct perf_sample *sample) return false; } +static void trace__set_base_time(struct trace *trace, + struct perf_evsel *evsel __maybe_unused, + struct perf_sample *sample) +{ + if (trace->base_time == 0 && !trace->full_time) + trace->base_time = sample->time; +} + static int trace__process_sample(struct perf_tool *tool, union perf_event *event, struct perf_sample *sample, @@ -2414,8 +2422,7 @@ static int trace__process_sample(struct perf_tool *tool, if (skip_sample(trace, sample)) return 0; - if (!trace->full_time && trace->base_time == 0) - trace->base_time = sample->time; + trace__set_base_time(trace, evsel, sample); if (handler) { ++trace->nr_events; @@ -2553,9 +2560,6 @@ static void trace__handle_event(struct trace *trace, union perf_event *event, st const u32 type = event->header.type; struct perf_evsel *evsel; - if (!trace->full_time && trace->base_time == 0) - trace->base_time = sample->time; - if (type != PERF_RECORD_SAMPLE) { trace__process_event(trace, trace->host, event, sample); return; @@ -2567,6 +2571,8 @@ static void trace__handle_event(struct trace *trace, union perf_event *event, st return; } + trace__set_base_time(trace, evsel, sample); + if (evsel->attr.type == PERF_TYPE_TRACEPOINT && sample->raw_data == NULL) { fprintf(trace->output, "%s sample with no payload for tid: %d, cpu %d, raw_size=%d, skipping...\n",