• Steven Rostedt (Google)'s avatar
    trace_seq: Increase the buffer size to almost two pages · 40fc60e3
    Steven Rostedt (Google) authored
    Now that trace_marker can hold more than 1KB string, and can write as much
    as the ring buffer can hold, the trace_seq is not big enough to hold
    writes:
    
     ~# a="1234567890"
     ~# cnt=4080
     ~# s=""
     ~# while [ $cnt -gt 10 ]; do
     ~#	s="${s}${a}"
     ~#	cnt=$((cnt-10))
     ~# done
     ~# echo $s > trace_marker
     ~# cat 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
     #              | |         |   |||||     |         |
                <...>-860     [002] .....   105.543465: tracing_mark_write[LINE TOO BIG]
                <...>-860     [002] .....   105.543496: tracing_mark_write: 789012345678901234567890
    
    By increasing the trace_seq buffer to almost two pages, it can now print
    out the first line.
    
    This also subtracts the rest of the trace_seq fields from the buffer, so
    that the entire trace_seq is now PAGE_SIZE aligned.
    
    Link: https://lore.kernel.org/linux-trace-kernel/20231209175220.19867af4@gandalf.local.home
    
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Reviewed-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    40fc60e3
trace_seq.c 11 KB