Re: [PATCH v1 06/12] trace: use TP_printk_no_nl in dyndbg:prdbg,devdbg

From: Steven Rostedt
Date: Mon Nov 06 2023 - 19:45:03 EST


On Fri, 3 Nov 2023 14:10:05 +0100
Łukasz Bartosik <lb@xxxxxxxxxxxx> wrote:

> index ccc5bcb070f9..91dcdbe059c0 100644
> --- a/include/trace/events/dyndbg.h
> +++ b/include/trace/events/dyndbg.h
> @@ -20,20 +20,10 @@ TRACE_EVENT(prdbg,
>
> TP_fast_assign(
> __entry->desc = desc;
> - /*
> - * Each trace entry is printed in a new line.
> - * If the msg finishes with '\n', cut it off
> - * to avoid blank lines in the trace.
> - */
> - if (len > 0 && (text[len - 1] == '\n'))
> - len -= 1;
> -
> memcpy(__get_str(msg), text, len);
> - __get_str(msg)[len] = 0;
> ),
>
> - TP_printk("%s.%s %s", __entry->desc->modname,
> - __entry->desc->function, __get_str(msg))
> + TP_printk_no_nl("%s", __get_str(msg))
> );
>

Instead of adding the TP_printk_no_nl() (Which I still do not like), we
could add a:

__get_str_strip_nl(msg)

That will do the above loop. Which will move the processing to read side
(slow path).

And then we could update libtraceevent to handle that too.

-- Steve