All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: steve@chygwyn.com, npiggin@suse.de, akpm@linux-foundation.org,
	linux-mm@kvack.org, linux-fsdevel@vger.kernel.org
Subject: Re: [patch] fs: improved handling of page and buffer IO errors
Date: Wed, 22 Oct 2008 13:51:40 +0100	[thread overview]
Message-ID: <20081022125140.GB826@shareable.org> (raw)
In-Reply-To: <E1KsJr2-0006jT-1R@pomaz-ex.szeredi.hu>

Miklos Szeredi wrote:
> On Tue, 21 Oct 2008, steve@chygwyn.co wrote:
> > Well I'm not sure why we'd need to distinguish between "page has not
> > been read" and "page has been read but no longer valid". I guess I
> > don't understand why those two cases are not the same from the vfs
> > and filesystem points of view.
> 
> In the first case the page contains random bytes, in the second case
> it contains actual file data, which has become stale, but at some
> point in time it _was_ the contents of the file.
> 
> This is a very important distinction for splice(2) for example.
> Splice does not actually copy data into the pipe buffer, only
> references the pages.  And it can reference pages which are not yet
> up-to-date.  So when the buffers are consumed from the pipe, the
> splice code needs to know if the page contains random junk (never
> brought up-to-date) or data that is, or once was, valid.

So GFS goes to great lengths to ensure that read/write are coherent,
so are mmaps (writable or not), but _splice_ is not coherent in the
sense that it can send invalid but non-random data? :-)

Also, is there still a problem where the data is "valid" but part of
the page may have been zero'd by truncate, which is then transmitted
by splice?

-- Jamie

WARNING: multiple messages have this Message-ID (diff)
From: Jamie Lokier <jamie@shareable.org>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: steve@chygwyn.com, npiggin@suse.de, akpm@linux-foundation.org,
	linux-mm@kvack.org, linux-fsdevel@vger.kernel.org
Subject: Re: [patch] fs: improved handling of page and buffer IO errors
Date: Wed, 22 Oct 2008 13:51:40 +0100	[thread overview]
Message-ID: <20081022125140.GB826@shareable.org> (raw)
In-Reply-To: <E1KsJr2-0006jT-1R@pomaz-ex.szeredi.hu>

Miklos Szeredi wrote:
> On Tue, 21 Oct 2008, steve@chygwyn.co wrote:
> > Well I'm not sure why we'd need to distinguish between "page has not
> > been read" and "page has been read but no longer valid". I guess I
> > don't understand why those two cases are not the same from the vfs
> > and filesystem points of view.
> 
> In the first case the page contains random bytes, in the second case
> it contains actual file data, which has become stale, but at some
> point in time it _was_ the contents of the file.
> 
> This is a very important distinction for splice(2) for example.
> Splice does not actually copy data into the pipe buffer, only
> references the pages.  And it can reference pages which are not yet
> up-to-date.  So when the buffers are consumed from the pipe, the
> splice code needs to know if the page contains random junk (never
> brought up-to-date) or data that is, or once was, valid.

So GFS goes to great lengths to ensure that read/write are coherent,
so are mmaps (writable or not), but _splice_ is not coherent in the
sense that it can send invalid but non-random data? :-)

Also, is there still a problem where the data is "valid" but part of
the page may have been zero'd by truncate, which is then transmitted
by splice?

-- Jamie

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-10-22 12:51 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-21 11:21 [patch] fs: improved handling of page and buffer IO errors Nick Piggin
2008-10-21 11:21 ` Nick Piggin
2008-10-21 12:52 ` Miklos Szeredi
2008-10-21 12:52   ` Miklos Szeredi
2008-10-21 12:59   ` steve
2008-10-21 12:59     ` steve
2008-10-21 13:14     ` Miklos Szeredi
2008-10-21 13:14       ` Miklos Szeredi
2008-10-21 13:38       ` steve
2008-10-21 13:38         ` steve
2008-10-21 14:32         ` Miklos Szeredi
2008-10-21 14:32           ` Miklos Szeredi
2008-10-21 15:09           ` steve
2008-10-21 15:09             ` steve
2008-10-21 16:13             ` Miklos Szeredi
2008-10-21 16:13               ` Miklos Szeredi
2008-10-22 12:51               ` Jamie Lokier [this message]
2008-10-22 12:51                 ` Jamie Lokier
2008-10-22 14:08                 ` Miklos Szeredi
2008-10-22 14:08                   ` Miklos Szeredi
2008-10-21 14:35         ` Evgeniy Polyakov
2008-10-21 14:35           ` Evgeniy Polyakov
2008-10-21 14:59           ` steve
2008-10-21 14:59             ` steve
2008-10-21 16:20             ` Miklos Szeredi
2008-10-21 16:20               ` Miklos Szeredi
2008-10-21 16:25               ` steve
2008-10-21 16:25                 ` steve
2008-10-21 16:28               ` Miklos Szeredi
2008-10-21 16:28                 ` Miklos Szeredi
2008-10-21 16:29                 ` Matthew Wilcox
2008-10-21 16:29                   ` Matthew Wilcox
2008-10-22 12:48                   ` Jamie Lokier
2008-10-22 12:48                     ` Jamie Lokier
2008-10-22 13:45                     ` Matthew Wilcox
2008-10-22 13:45                       ` Matthew Wilcox
2008-10-22 14:02                       ` Miklos Szeredi
2008-10-22 14:02                         ` Miklos Szeredi
2008-10-22 14:35                         ` Matthew Wilcox
2008-10-22 14:45                           ` Miklos Szeredi
2008-10-22 14:45                             ` Miklos Szeredi
2008-10-23 13:48                             ` Matthew Wilcox
2008-10-23 13:48                               ` Matthew Wilcox
2008-10-22 22:23     ` Mark Fasheh
2008-10-22 22:23       ` Mark Fasheh
2008-10-23  9:59       ` steve
2008-10-23  9:59         ` steve
2008-10-23 10:21         ` Nick Piggin
2008-10-23 10:21           ` Nick Piggin
2008-10-23 10:52           ` steve
2008-10-23 10:52             ` steve
2008-10-23 11:07             ` Nick Piggin
2008-10-23 11:07               ` Nick Piggin
2008-10-22 13:16   ` Nick Piggin
2008-10-22 13:16     ` Nick Piggin
2008-10-22 20:09     ` Miklos Szeredi
2008-10-22 20:09       ` Miklos Szeredi
2008-10-21 16:16 ` Andi Kleen
2008-10-21 16:16   ` Andi Kleen
2008-10-21 16:30   ` steve
2008-10-21 16:30     ` steve
2008-10-22 10:31   ` Nick Piggin
2008-10-22 10:31     ` Nick Piggin
2008-10-22 18:46     ` Brad Boyer
2008-10-22 18:46       ` Brad Boyer
2008-10-22 20:19       ` Andi Kleen
2008-10-22 20:19         ` Andi Kleen
2008-10-23  7:08       ` Nick Piggin
2008-10-23  7:08         ` Nick Piggin
2008-10-22 23:07     ` Dave Chinner
2008-10-22 23:07       ` Dave Chinner
2008-10-23  7:07       ` Nick Piggin
2008-10-23  7:07         ` Nick Piggin
2008-10-23  9:44         ` steve
2008-10-23  9:44           ` steve
2008-10-23 11:15           ` Nick Piggin
2008-10-23 11:15             ` Nick Piggin
2008-10-23 22:48             ` Dave Chinner
2008-10-23 22:48               ` Dave Chinner
2008-10-24  1:05               ` Nick Piggin
2008-10-24  1:05                 ` Nick Piggin

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=20081022125140.GB826@shareable.org \
    --to=jamie@shareable.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=miklos@szeredi.hu \
    --cc=npiggin@suse.de \
    --cc=steve@chygwyn.com \
    /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.