When opening the "trace" file, it is no longer necessary to disable tracing.
Note, a new option is created called "pause-on-trace", when set, will cause
the trace file to emulate its original behavior.
Link: http://lkml.kernel.org/r/20200317213416.903351225@goodmis.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
 
        the trace displays additional information about the
        latency, as described in "Latency trace format".
 
+  pause-on-trace
+       When set, opening the trace file for read, will pause
+       writing to the ring buffer (as if tracing_on was set to zero).
+       This simulates the original behavior of the trace file.
+       When the file is closed, tracing will be enabled again.
+
   record-cmd
        When any event or tracer is enabled, a hook is enabled
        in the sched_switch trace point to fill comm cache
 
        if (trace_clocks[tr->clock_id].in_ns)
                iter->iter_flags |= TRACE_FILE_TIME_IN_NS;
 
-       /* stop the trace while dumping if we are not opening "snapshot" */
-       if (!iter->snapshot)
+       /*
+        * If pause-on-trace is enabled, then stop the trace while
+        * dumping, unless this is the "snapshot" file
+        */
+       if (!iter->snapshot && (tr->trace_flags & TRACE_ITER_PAUSE_ON_TRACE))
                tracing_stop_tr(tr);
 
        if (iter->cpu_file == RING_BUFFER_ALL_CPUS) {
        if (iter->trace && iter->trace->close)
                iter->trace->close(iter);
 
-       if (!iter->snapshot)
+       if (!iter->snapshot && tr->stop_count)
                /* reenable tracing if it was previously enabled */
                tracing_start_tr(tr);
 
 
                C(IRQ_INFO,             "irq-info"),            \
                C(MARKERS,              "markers"),             \
                C(EVENT_FORK,           "event-fork"),          \
+               C(PAUSE_ON_TRACE,       "pause-on-trace"),      \
                FUNCTION_FLAGS                                  \
                FGRAPH_FLAGS                                    \
                STACK_FLAGS                                     \