[4/5] tracing: Delete timestamp_mode trace file

Message ID 20221018120056.1321426-5-sunliming@kylinos.cn
State New
Headers
Series tracing: Revmoe absolute timestamp logic and interface |

Commit Message

sunliming Oct. 18, 2022, noon UTC
  The timestamp_mode trace file is not necessary duo to the removing of
the absolute timestamp.

Signed-off-by: sunliming <sunliming@kylinos.cn>
---
 Documentation/trace/ftrace.rst | 24 ------------------
 kernel/trace/trace.c           | 45 ----------------------------------
 2 files changed, 69 deletions(-)
  

Comments

Steven Rostedt Oct. 18, 2022, 1:26 p.m. UTC | #1
On Tue, 18 Oct 2022 20:00:55 +0800
sunliming <sunliming@kylinos.cn> wrote:

> The timestamp_mode trace file is not necessary duo to the removing of
> the absolute timestamp.

This is user space exposed API. Which means we do not just simply "remove
it". This file is the reason I kept the absolute timestamps around in the
first place. Because user space may want them.

How do you know that user space isn't using this? Is there something else
you are planning on adding that makes taking the risk we might break user
space worth while?

-- Steve
  
sunliming Dec. 14, 2022, 8:43 a.m. UTC | #2
Got it.

Steven Rostedt <rostedt@goodmis.org> 于2022年10月18日周二 21:26写道:
>
> On Tue, 18 Oct 2022 20:00:55 +0800
> sunliming <sunliming@kylinos.cn> wrote:
>
> > The timestamp_mode trace file is not necessary duo to the removing of
> > the absolute timestamp.
>
> This is user space exposed API. Which means we do not just simply "remove
> it". This file is the reason I kept the absolute timestamps around in the
> first place. Because user space may want them.
>
> How do you know that user space isn't using this? Is there something else
> you are planning on adding that makes taking the risk we might break user
> space worth while?
>
> -- Steve
  

Patch

diff --git a/Documentation/trace/ftrace.rst b/Documentation/trace/ftrace.rst
index 60bceb018d6a..9b4a4e9c1cbd 100644
--- a/Documentation/trace/ftrace.rst
+++ b/Documentation/trace/ftrace.rst
@@ -615,30 +615,6 @@  of ftrace. Here is a list of some of the key files:
 
 	See events.rst 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 47a44b055a1d..af8cbcad0bad 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -5494,9 +5494,6 @@  static const char readme_msg[] =
 #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"
@@ -7319,38 +7316,6 @@  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->array_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;
-
-	ret = tracing_check_open_get_tr(tr);
-	if (ret)
-		return ret;
-
-	ret = single_open(file, tracing_time_stamp_mode_show, inode->i_private);
-	if (ret < 0)
-		trace_array_put(tr);
-
-	return ret;
-}
-
 u64 tracing_event_time_stamp(struct trace_buffer *buffer, struct ring_buffer_event *rbe)
 {
 	if (rbe == this_cpu_read(trace_buffered_event))
@@ -7643,13 +7608,6 @@  static const struct file_operations trace_clock_fops = {
 	.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,
@@ -9580,9 +9538,6 @@  init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer)
 	trace_create_file("tracing_on", TRACE_MODE_WRITE, d_tracer,
 			  tr, &rb_simple_fops);
 
-	trace_create_file("timestamp_mode", TRACE_MODE_READ, d_tracer, tr,
-			  &trace_time_stamp_mode_fops);
-
 	tr->buffer_percent = 50;
 
 	trace_create_file("buffer_percent", TRACE_MODE_READ, d_tracer,