Patch "tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     tracing-have-large-events-show-up-as-line-too-big-in.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 87ee502c1c8479d303f346e34a222f133fe9ea4b
Author: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
Date:   Sat Dec 9 17:10:58 2023 -0500

    tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
    
    [ Upstream commit b55b0a0d7c4aa2dac3579aa7e6802d1f57445096 ]
    
    If a large event was added to the ring buffer that is larger than what the
    trace_seq can handle, it just drops the output:
    
     ~# cat /sys/kernel/tracing/trace
     # tracer: nop
     #
     # entries-in-buffer/entries-written: 2/2   #P:8
     #
     #                                _-----=> irqs-off/BH-disabled
     #                               / _----=> need-resched
     #                              | / _---=> hardirq/softirq
     #                              || / _--=> preempt-depth
     #                              ||| / _-=> migrate-disable
     #                              |||| /     delay
     #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
     #              | |         |   |||||     |         |
                <...>-859     [001] .....   141.118951: tracing_mark_write           <...>-859     [001] .....   141.148201: tracing_mark_write: 78901234
    
    Instead, catch this case and add some context:
    
     ~# cat /sys/kernel/tracing/trace
     # tracer: nop
     #
     # entries-in-buffer/entries-written: 2/2   #P:8
     #
     #                                _-----=> irqs-off/BH-disabled
     #                               / _----=> need-resched
     #                              | / _---=> hardirq/softirq
     #                              || / _--=> preempt-depth
     #                              ||| / _-=> migrate-disable
     #                              |||| /     delay
     #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
     #              | |         |   |||||     |         |
                <...>-852     [001] .....   121.550551: tracing_mark_write[LINE TOO BIG]
                <...>-852     [001] .....   121.550581: tracing_mark_write: 78901234
    
    This now emulates the same output as trace_pipe.
    
    Link: https://lore.kernel.org/linux-trace-kernel/20231209171058.78c1a026@xxxxxxxxxxxxxxxxxx
    
    Cc: Mark Rutland <mark.rutland@xxxxxxx>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
    Reviewed-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
    Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index a55f7d091355..438c5b64db25 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4744,7 +4744,11 @@ static int s_show(struct seq_file *m, void *v)
 		iter->leftover = ret;
 
 	} else {
-		print_trace_line(iter);
+		ret = print_trace_line(iter);
+		if (ret == TRACE_TYPE_PARTIAL_LINE) {
+			iter->seq.full = 0;
+			trace_seq_puts(&iter->seq, "[LINE TOO BIG]\n");
+		}
 		ret = trace_print_seq(m, &iter->seq);
 		/*
 		 * If we overflow the seq_file buffer, then it will




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux