From: Al Viro <viro@ZenIV.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Alan J. Wylie" <alan@wylie.me.uk>,
Thorsten Leemhuis <regressions@leemhuis.info>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: 4.9.0 regression in pipe-backed iov_iter with systemd-nspawn
Date: Thu, 12 Jan 2017 23:27:19 +0000 [thread overview]
Message-ID: <20170112232719.GE1555@ZenIV.linux.org.uk> (raw)
In-Reply-To: <CA+55aFyy8psMaO-wfKFBLy-icAxZyQ8DZqO5kwsPnWHPe_Z6xw@mail.gmail.com>
On Thu, Jan 12, 2017 at 03:14:41PM -0800, Linus Torvalds wrote:
> On Thu, Jan 12, 2017 at 3:02 PM, Linus Torvalds
> <torvalds@linux-foundation.org> wrote:
> >
> > Looking at the callers of "do_splice_to()", we already have the
> > wait_for_space() in do_splice(), but we do *not* have it in the
> > do_splice_from() case when both the input and output file descriptors
> > are pipes.
>
> Bah. That case doesn't even trigger the new code. I was lazy with my
> grep. The two cases are "do_splice()" (which does have the
> wait-for-space) and splice_direct_to_actor(). And
> splice_direct_to_actor() shouldn't even need it, should it?
>
> So ignore that. But I think there is something about the EAGAIN.
It might, but I would really like to see where has that EAGAIN come
from. I see several possibilities:
* wait_for_space() with SPLICE_F_NONBLOCK in flags. Shouldn't
happen with 0 in the last argument of splice(2).
* default_file_splice_read() seeing pipe->nrbufs == pipe->buffers.
Shouldn't be possible after successful wait_for_space().
* vfs_readv() returning -EAGAIN. That might be possible,
actually - the damn thing has come from
13761 open("/dev/ptmx", O_RDWR|O_NOCTTY|O_NONBLOCK|O_CLOEXEC) = 5
and O_NONBLOCK had been present in open flags.
What I'd like to see is strace of the same thing on the working kernel,
ideally - just prior to the commit bisect has converged to.
next prev parent reply other threads:[~2017-01-12 23:27 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-12 20:26 4.9.0 regression in pipe-backed iov_iter with systemd-nspawn Alan J. Wylie
2017-01-12 20:31 ` Al Viro
2017-01-12 20:38 ` Alan J. Wylie
2017-01-12 22:26 ` Linus Torvalds
2017-01-12 22:37 ` Al Viro
2017-01-12 22:46 ` Al Viro
2017-01-12 23:02 ` Linus Torvalds
2017-01-12 23:14 ` Al Viro
2017-01-12 23:14 ` Linus Torvalds
2017-01-12 23:27 ` Al Viro [this message]
2017-01-12 22:46 ` Alan J. Wylie
2017-01-12 22:58 ` Al Viro
2017-01-12 23:28 ` Linus Torvalds
2017-01-13 4:00 ` Al Viro
2017-01-13 7:38 ` Alan J. Wylie
2017-01-13 7:23 ` Alan J. Wylie
2017-01-13 9:33 ` Al Viro
2017-01-13 9:54 ` Alan J. Wylie
2017-01-13 10:20 ` Al Viro
2017-01-13 10:32 ` Alan J. Wylie
2017-01-13 11:25 ` Al Viro
2017-01-13 11:18 ` Al Viro
2017-01-13 19:33 ` Linus Torvalds
2017-01-13 20:08 ` Al Viro
2017-01-13 20:11 ` Al Viro
2017-01-13 20:32 ` Linus Torvalds
2017-01-13 20:47 ` Al Viro
2017-01-13 21:55 ` Al Viro
2017-01-13 21:59 ` Al Viro
2017-01-13 22:13 ` Al Viro
2017-01-13 22:50 ` Al Viro
2017-01-14 0:59 ` Linus Torvalds
2017-01-14 1:24 ` Al Viro
2017-01-14 1:43 ` Al Viro
2017-01-14 1:46 ` Linus Torvalds
2017-01-14 1:57 ` Al Viro
2017-01-15 0:53 ` Al Viro
2017-01-14 13:16 ` Alan J. Wylie
2017-01-14 16:29 ` Alan J. Wylie
2017-01-14 17:57 ` Linus Torvalds
2017-01-13 20:08 ` Linus Torvalds
2017-01-13 20:16 ` Al Viro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170112232719.GE1555@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=alan@wylie.me.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=regressions@leemhuis.info \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.