Re: [PATCH] tracing: Fix race when concurrently splice_read trace_pipe
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2023-08-13 01:13:32
Also in:
lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2023-08-13 01:13:32
Also in:
lkml
On Sat, 12 Aug 2023 15:38:12 +0800 Zheng Yejian [off-list ref] wrote:
Reproduction testcase is show as below, it can always reproduce the
issue in v5.10, and after this patch, the testcase passed.
In v5.10, when run `cat trace_pipe > /tmp/myfile &`, it call
sendfile() to transmit data from trace_pipe into /tmp/myfile. And in
kernel, .splice_read() of trace_pipe is called then the issue is
reproduced.
However in the newest v6.5, this reproduction case didn't run into the
.splice_read() of trace_pipe, because after commit 97ef77c52b78 ("fs:
check FMODE_LSEEK to control internal pipe splicing"), non-seekable
trace_pipe cannot be sendfile-ed.So the test case cannot be run because the "sendfile" on the trace_pipe now fails? I'm not sure if this is considered a user space regression or not, but I figured I'd let the interested parties know. I don't know what tools out there records trace_pipe via sendfile, but there might be some. -- Steve