Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1730062

Re: iov_iter_pipe warning.

From Al Viro <viro@ZenIV.linux.org.uk>
Newsgroups linux.kernel
Subject Re: iov_iter_pipe warning.
Date 2017-09-10 22:40 +0200
Message-ID <uohbm-Dm-21@gated-at.bofh.it> (permalink)
References (5 earlier) <unYV3-4ZZ-5@gated-at.bofh.it> <uo0Dv-5VJ-3@gated-at.bofh.it> <uocY5-6f2-91@gated-at.bofh.it> <uogIh-rP-9@gated-at.bofh.it> <uogIh-rP-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sun, Sep 10, 2017 at 04:07:24PM -0400, Dave Jones wrote:
> On Sun, Sep 10, 2017 at 09:05:48PM +0100, Al Viro wrote:
>  > On Sun, Sep 10, 2017 at 12:07:10PM -0400, Dave Jones wrote:
>  > > On Sun, Sep 10, 2017 at 03:57:21AM +0100, Al Viro wrote:
>  > >  > On Sat, Sep 09, 2017 at 09:07:56PM -0400, Dave Jones wrote:
>  > >  > 
>  > >  > > With this in place, I'm still seeing -EBUSY from invalidate_inode_pages2_range
>  > >  > > which doesn't end well...
>  > >  > 
>  > >  > Different issue, and I'm not sure why that WARN_ON() is there in the
>  > >  > first place.  Note that in a similar situation generic_file_direct_write()
>  > >  > simply buggers off and lets the caller do buffered write...
>  > >  > 
>  > >  > iov_iter_pipe() warning is a sign of ->read_iter() on pipe-backed iov_iter
>  > >  > putting into the pipe more than it claims to have done.
>  > > 
>  > > (from a rerun after hitting that EBUSY warn; hence the taint)
>  > > 
>  > > WARNING: CPU: 0 PID: 14154 at fs/iomap.c:1055 iomap_dio_rw+0x78e/0x840
>  > 
>  > ... and that's another invalidate_inode_pages2_range() in the same
>  > sucker.  Again, compare with generic_file_direct_write()...
>  > 
>  > I don't believe that this one has anything splice-specific to do with it.
>  > And its only relation to iov_iter_pipe() splat is that it's in the same
>  > fs/iomap.c...
> 
> The interesting part is that I'm hitting these two over and over now
> rather than the iov_iter_pipe warning.  Could just be unlucky
> randomness though..

Well, if you are still running the same reproducer and it used to hit the "read
from hole longer than the amount of space left in pipe" case, fixing the other
bug would have led to a lot more data shoved through the pipe without choking.
So the write side would be exercised more than before...

Hell knows; the question I have right now is what the devil are those WARN_ON_ONCE()
doing there.  Again, the same conditions are possible on other filesystems, only
there we don't yell; invalidation failure before starting O_DIRECT write is
handled by quiet fallback to buffered IO, the one after the write is simply
ignored.

Doing those WARN_ON_ONCE() is an explicit choice in "iomap: implement direct I/O",
so it's a question to Christoph, AFAICS...

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-08-28 22:40 +0200
  Re: iov_iter_pipe warning. "Darrick J. Wong" <darrick.wong@oracle.com> - 2017-08-29 06:30 +0200
    Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-08-30 19:10 +0200
      Re: iov_iter_pipe warning. "Darrick J. Wong" <darrick.wong@oracle.com> - 2017-08-30 19:20 +0200
        Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-08-30 19:20 +0200
    Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-09-06 22:10 +0200
      Re: iov_iter_pipe warning. Dave Chinner <david@fromorbit.com> - 2017-09-07 01:50 +0200
        Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-09-07 05:50 +0200
          Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-07 06:40 +0200
        Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-08 03:10 +0200
          Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-09-10 03:10 +0200
            Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-10 05:00 +0200
              Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-09-10 18:10 +0200
                Re: iov_iter_pipe warning. Dave Jones <davej@codemonkey.org.uk> - 2017-09-10 22:10 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-10 22:40 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-10 22:10 +0200
              Re: iov_iter_pipe warning. Dave Chinner <david@fromorbit.com> - 2017-09-10 23:20 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-10 23:20 +0200
                Re: iov_iter_pipe warning. Dave Chinner <david@fromorbit.com> - 2017-09-11 00:10 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-11 01:10 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-11 01:20 +0200
                Re: iov_iter_pipe warning. Dave Chinner <david@fromorbit.com> - 2017-09-11 02:40 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-11 05:40 +0200
                Re: iov_iter_pipe warning. Dave Chinner <david@fromorbit.com> - 2017-09-11 08:50 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-11 22:10 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-11 22:20 +0200
                Re: iov_iter_pipe warning. Dave Chinner <david@fromorbit.com> - 2017-09-12 08:10 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-12 13:20 +0200
                Re: iov_iter_pipe warning. Christoph Hellwig <hch@infradead.org> - 2017-09-11 14:10 +0200
                Re: iov_iter_pipe warning. Al Viro <viro@ZenIV.linux.org.uk> - 2017-09-11 15:00 +0200

csiph-web