Skip to content

Commit 75df6e6

Browse files
Tahsin Erdoganrostedt
authored andcommitted
tracing: Fix trace_pipe behavior for instance traces
When reading data from trace_pipe, tracing_wait_pipe() performs a check to see if tracing has been turned off after some data was read. Currently, this check always looks at global trace state, but it should be checking the trace instance where trace_pipe is located at. Because of this bug, cat instances/i1/trace_pipe in the following script will immediately exit instead of waiting for data: cd /sys/kernel/debug/tracing echo 0 > tracing_on mkdir -p instances/i1 echo 1 > instances/i1/tracing_on echo 1 > instances/i1/events/sched/sched_process_exec/enable cat instances/i1/trace_pipe Link: http://lkml.kernel.org/r/[email protected] Cc: [email protected] Fixes: 10246fa ("tracing: give easy way to clear trace buffer") Signed-off-by: Tahsin Erdogan <[email protected]> Signed-off-by: Steven Rostedt (VMware) <[email protected]>
1 parent c7b3ae0 commit 75df6e6

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/trace/trace.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5680,7 +5680,7 @@ static int tracing_wait_pipe(struct file *filp)
56805680
*
56815681
* iter->pos will be 0 if we haven't read anything.
56825682
*/
5683-
if (!tracing_is_on() && iter->pos)
5683+
if (!tracer_tracing_is_on(iter->tr) && iter->pos)
56845684
break;
56855685

56865686
mutex_unlock(&iter->mutex);

0 commit comments

Comments
 (0)