Re: [PATCH v20 23/32] splice: Convert trace/seq to use direct_splice_read()

From: Steven Rostedt
Date: Mon May 22 2023 - 10:29:35 EST


On Fri, 19 May 2023 08:40:38 +0100
David Howells <dhowells@xxxxxxxxxx> wrote:

> For the splice from the trace seq buffer, just use direct_splice_read().
>
> In the future, something better can probably be done by gifting pages from
> seq->buf into the pipe, but that would require changing seq->buf into a
> vmap over an array of pages.

If you can give me a POC of what needs to be done, I could possibly
implement it.

>
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: Christoph Hellwig <hch@xxxxxx>
> cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> cc: Jens Axboe <axboe@xxxxxxxxx>
> cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> cc: linux-kernel@xxxxxxxxxxxxxxx
> cc: linux-trace-kernel@xxxxxxxxxxxxxxx
> cc: linux-fsdevel@xxxxxxxxxxxxxxx
> cc: linux-block@xxxxxxxxxxxxxxx
> cc: linux-mm@xxxxxxxxx
> ---
> kernel/trace/trace.c | 2 +-

Acked-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>

-- Steve

> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> index ebc59781456a..b664020efcb7 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -5171,7 +5171,7 @@ static const struct file_operations tracing_fops = {
> .open = tracing_open,
> .read = seq_read,
> .read_iter = seq_read_iter,
> - .splice_read = generic_file_splice_read,
> + .splice_read = direct_splice_read,
> .write = tracing_write_stub,
> .llseek = tracing_lseek,
> .release = tracing_release,