Re: [linux-next:master] [drivers/char/mem] 1b057bd800: stress-ng.splice.ops_per_sec -99.8% regression

From: Max Kellermann
Date: Wed Oct 18 2023 - 02:32:08 EST


On Tue, Oct 17, 2023 at 6:57 PM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> So everything now goes faster, right? -99.8% regression means 99.8%
> faster?

That's what I thought, too, and sounds reasonable considering this
test is described as "stress copying of /dev/zero to /dev/null",
but... it's not what that test actually does. Contrary to the
description, it doesn't use /dev/zero at all, neither does it use
/dev/full. So it shouldn't be affected by my patch at all.

strace of that test's setup:

pipe2([4, 5], 0) = 0
openat(AT_FDCWD, "/dev/null", O_WRONLY) = 6

Then it loops:

vmsplice(5, [{iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
iov_len=65536}], 1, 0) = 65536
splice(4, NULL, 6, NULL, 65536, SPLICE_F_MOVE) = 65536
write(5, "\334\360U\300~\361\20jV\367\263,\221\3724\332>7\31H2|\20\254\314\212y\275\334I\304\207"...,
4096) = 4096
vmsplice(4, [{iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
iov_len=4096}], 1, 0) = 4096

I don't get it.