Re: [PATCH 0/3] vmsplice: make vmsplice a trivial wrapper for preadv2/pwritev2
Askar Safin <[email protected]> Wed, 24 Jun 2026 10:12:26 +0300
| Newsgroups | dev.linux.lists.criu,dev.linux.lists.fuse-devel,dev.linux.lists.patches,org.kernel.vger.linux-api,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
Andrei Vagin <[email protected]>: > The CRIU fifo test fails with this change. The problem is that vmsplice > with SPLICE_F_NONBLOCK to a fifo file descriptor fails with -EOPNOTSUPP. > > It seems we need a fix like this one: > > diff --git a/fs/pipe.c b/fs/pipe.c > index 429b0714ec57..6fc49e933727 100644 > --- a/fs/pipe.c > +++ b/fs/pipe.c > @@ -1253,6 +1253,7 @@ static int fifo_open(struct inode *inode, struct > file *filp) > > /* We can only do regular read/write on fifos */ > stream_open(inode, filp); > + filp->f_mode |= FMODE_NOWAIT; > > switch (filp->f_mode & (FMODE_READ | FMODE_WRITE)) { > case FMODE_READ: Does CRIU actually rely on ability to do SPLICE_F_NONBLOCK vmsplice into named fifos? Or this is merely a test? If this is just a test, I think we need not to preserve this behavior. I did debian code search with regex "vmsplice.*SPLICE_F_NONBLOCK" and I found very few packages. And it seems all them use pipes, not named fifos. (On speed: I still think that my vmsplice patches are good thing, despite performance regressions in CRIU.) -- Askar Safin