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,