Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753302AbcLBVUz (ORCPT ); Fri, 2 Dec 2016 16:20:55 -0500 Received: from mga05.intel.com ([192.55.52.43]:26610 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752383AbcLBVUo (ORCPT ); Fri, 2 Dec 2016 16:20:44 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,288,1477983600"; d="scan'208";a="1093847548" From: kan.liang@intel.com To: peterz@infradead.org, mingo@redhat.com, acme@kernel.org, linux-kernel@vger.kernel.org Cc: alexander.shishkin@linux.intel.com, tglx@linutronix.de, namhyung@kernel.org, jolsa@kernel.org, adrian.hunter@intel.com, wangnan0@huawei.com, mark.rutland@arm.com, andi@firstfloor.org, Kan Liang Subject: [PATCH V2 10/13] perf tools: add time related functions Date: Fri, 2 Dec 2016 16:19:18 -0500 Message-Id: <1480713561-6617-11-git-send-email-kan.liang@intel.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1480713561-6617-1-git-send-email-kan.liang@intel.com> References: <1480713561-6617-1-git-send-email-kan.liang@intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1775 Lines: 60 From: Kan Liang Make get_nsecs visible to collect monotonic wall time. Introduce get_vnsecs to collect CPU time. Signed-off-by: Kan Liang --- tools/perf/builtin-record.c | 9 +++++++++ tools/perf/builtin-sched.c | 2 +- tools/perf/builtin.h | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 73b033b..e69099d 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -65,6 +65,15 @@ struct record { unsigned long long samples; }; +u64 get_vnsecs(void) +{ + struct timespec ts; + + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts); + + return ts.tv_sec * NSEC_PER_SEC + ts.tv_nsec; +} + static int record__write(struct record *rec, void *bf, size_t size) { if (perf_data_file__write(rec->session->file, bf, size) < 0) { diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index a49a032..35a301b 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -229,7 +229,7 @@ static struct thread **idle_threads; static int idle_max_cpu; static char idle_comm[] = ""; -static u64 get_nsecs(void) +u64 get_nsecs(void) { struct timespec ts; diff --git a/tools/perf/builtin.h b/tools/perf/builtin.h index 0bcf68e..2a9a1db 100644 --- a/tools/perf/builtin.h +++ b/tools/perf/builtin.h @@ -12,6 +12,8 @@ const char *help_unknown_cmd(const char *cmd); void prune_packed_objects(int); int read_line_with_nul(char *buf, int size, FILE *file); int check_pager_config(const char *cmd); +u64 get_nsecs(void); +u64 get_vnsecs(void); int cmd_annotate(int argc, const char **argv, const char *prefix); int cmd_bench(int argc, const char **argv, const char *prefix); -- 2.5.5