Received: by 10.223.164.202 with SMTP id h10csp1626177wrb; Sat, 18 Nov 2017 02:57:47 -0800 (PST) X-Google-Smtp-Source: AGs4zMbZ10jD/at/w8CD0U02hHA5+Nw+aBEgoQ81FiACtAJbt+X9L3RNANpvjPjKZNsentNyx3v7 X-Received: by 10.84.232.200 with SMTP id x8mr1986628plm.101.1511002666941; Sat, 18 Nov 2017 02:57:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511002666; cv=none; d=google.com; s=arc-20160816; b=Bljx/JEz8+KL/Yp82FTcYnnLHHC3g9IxrKhqPR46ZwIWMyWu4X2g2Sn/8qaDpbwMlO wBsySRO2Q+oRiOjONMHi9rrXk/2iL2GvqDKbMjLs+k8jS6AXW2APEZk+MaoqwDCNOTBD TIfruTGUAM8qL43TOJCfAvGwmIyphY3swW6r5I1E7rwxS3Y8obQFV9FK+2dp8zveN4/w 43+uwQR13ZWdOsuWIoxt1xwzTIxeNhxie1ODAWFxsi0fdbc8BUIrRVM8GfI3uWWPBMj7 1SnFFwU3u89e2eDf1GbhgMN+9tITtcsXsYBTtoAJaBqKc3bSwUhzZt59z/KyAwSjOATT kO5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=9waYv0FblFGmdpTsxRdFVDbxwdR54e+w06J6Of2ros0=; b=G/TsJtCv3nnMG2DrIqOBoxWabp3m2EfWSWhIlLq1+iMbXGP9qnVOCJwngbyozfVWnh 1e6u66COFZGeFY0HwWTmc7mbJsufAeDcXE0gMcNlDQWbyuE9t7AzdSCE3HahWfDQ64Dg kYokndIIFYF2P7x7YIp85OvSp3FZmGnZSgQMaUfzITlZqm01cgNaLp/WgJi2P6Sx+AmU HdmnoklRlInw3v04kG1DtrSF1V7T4UZ0NLufrKqTnhIwtwnvEGSZ9/mL5/ndTl8hSD88 YwR/PX2DFe0L1Yu5XpIpQL9z4p5f5ptpvDo0qrtca0X7owuCSlBwGXN8RixLl5aWRJvv LVJA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m189si4789279pfc.373.2017.11.18.02.57.34; Sat, 18 Nov 2017 02:57:46 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936075AbdKQUfm (ORCPT + 93 others); Fri, 17 Nov 2017 15:35:42 -0500 Received: from mga05.intel.com ([192.55.52.43]:8076 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935733AbdKQUeB (ORCPT ); Fri, 17 Nov 2017 15:34:01 -0500 Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Nov 2017 12:34:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,411,1505804400"; d="scan'208";a="150558078" Received: from mjglynn-mobl.ger.corp.intel.com (HELO localhost) ([10.254.124.112]) by orsmga004.jf.intel.com with ESMTP; 17 Nov 2017 12:33:57 -0800 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.opensrc@gmail.com, joelaf@google.com, mathieu.desnoyers@efficios.com, baohong.liu@intel.com, rajvi.jingar@intel.com, julia@ni.com, fengguang.wu@intel.com, linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org, Tom Zanussi Subject: [PATCH v6 07/37] tracing: Add timestamp_mode trace file Date: Fri, 17 Nov 2017 14:32:46 -0600 Message-Id: X-Mailer: git-send-email 1.9.3 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a new option flag indicating whether or not the ring buffer is in 'absolute timestamp' mode. Currently this is only set/unset by hist triggers that make use of a $common_timestamp. As such, there's no reason to make this writeable for users - its purpose is only to allow users to determine unequivocally whether or not the ring buffer is in that mode (although absolute timestamps can coexist with the normal delta timestamps, when the ring buffer is in absolute mode, timestamps written while absolute mode is in effect take up more space in the buffer, and are not as efficient). Signed-off-by: Tom Zanussi --- Documentation/trace/ftrace.txt | 24 +++++++++++++++++++++ kernel/trace/trace.c | 47 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt index d4601df..54213e5 100644 --- a/Documentation/trace/ftrace.txt +++ b/Documentation/trace/ftrace.txt @@ -539,6 +539,30 @@ of ftrace. Here is a list of some of the key files: See events.txt for more information. + timestamp_mode: + + Certain tracers may change the timestamp mode used when + logging trace events into the event buffer. Events with + different modes can coexist within a buffer but the mode in + effect when an event is logged determines which timestamp mode + is used for that event. The default timestamp mode is + 'delta'. + + Usual timestamp modes for tracing: + + # cat timestamp_mode + [delta] absolute + + The timestamp mode with the square brackets around it is the + one in effect. + + delta: Default timestamp mode - timestamp is a delta against + a per-buffer timestamp. + + absolute: The timestamp is a full timestamp, not a delta + against some other value. As such it takes up more + space and is less efficient. + hwlat_detector: Directory for the Hardware Latency Detector. diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 459924f..da604fa 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -4531,6 +4531,9 @@ static int tracing_trace_options_open(struct inode *inode, struct file *file) #ifdef CONFIG_X86_64 " x86-tsc: TSC cycle counter\n" #endif + "\n timestamp_mode\t-view the mode used to timestamp events\n" + " delta: Delta difference against a buffer-wide timestamp\n" + " absolute: Absolute (standalone) timestamp\n" "\n trace_marker\t\t- Writes into this file writes into the kernel buffer\n" "\n trace_marker_raw\t\t- Writes into this file writes binary data into the kernel buffer\n" " tracing_cpumask\t- Limit which CPUs to trace\n" @@ -6298,6 +6301,40 @@ static int tracing_clock_open(struct inode *inode, struct file *file) return ret; } +static int tracing_time_stamp_mode_show(struct seq_file *m, void *v) +{ + struct trace_array *tr = m->private; + + mutex_lock(&trace_types_lock); + + if (ring_buffer_time_stamp_abs(tr->trace_buffer.buffer)) + seq_puts(m, "delta [absolute]\n"); + else + seq_puts(m, "[delta] absolute\n"); + + mutex_unlock(&trace_types_lock); + + return 0; +} + +static int tracing_time_stamp_mode_open(struct inode *inode, struct file *file) +{ + struct trace_array *tr = inode->i_private; + int ret; + + if (tracing_disabled) + return -ENODEV; + + if (trace_array_get(tr)) + return -ENODEV; + + ret = single_open(file, tracing_time_stamp_mode_show, inode->i_private); + if (ret < 0) + trace_array_put(tr); + + return ret; +} + int tracing_set_time_stamp_abs(struct trace_array *tr, bool abs) { int ret = 0; @@ -6576,6 +6613,13 @@ static int snapshot_raw_open(struct inode *inode, struct file *filp) .write = tracing_clock_write, }; +static const struct file_operations trace_time_stamp_mode_fops = { + .open = tracing_time_stamp_mode_open, + .read = seq_read, + .llseek = seq_lseek, + .release = tracing_single_release_tr, +}; + #ifdef CONFIG_TRACER_SNAPSHOT static const struct file_operations snapshot_fops = { .open = tracing_snapshot_open, @@ -7903,6 +7947,9 @@ static __init void create_trace_instances(struct dentry *d_tracer) trace_create_file("tracing_on", 0644, d_tracer, tr, &rb_simple_fops); + trace_create_file("timestamp_mode", 0444, d_tracer, tr, + &trace_time_stamp_mode_fops); + create_trace_options_dir(tr); #if defined(CONFIG_TRACER_MAX_TRACE) || defined(CONFIG_HWLAT_TRACER) -- 1.9.3 From 1584369281768597328@xxx Sat Nov 18 02:31:31 +0000 2017 X-GM-THRID: 1584369281768597328 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread