All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Dilger <adilger@dilger.ca>
To: Dave Chinner <david@fromorbit.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	Josef Bacik <josef@redhat.com>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-btrfs@vger.kernel.org, xfs@oss.sgi.com,
	viro@ZenIV.linux.org.uk, dchinner@redhat.com
Subject: Re: [PATCH] xfstests 255: add a seek_data/seek_hole tester
Date: Thu, 25 Aug 2011 00:51:56 -0600	[thread overview]
Message-ID: <0A267E55-7772-438D-B6A7-89B73020F311@dilger.ca> (raw)
In-Reply-To: <20110825064039.GO3162@dastard>

On 2011-08-25, at 12:40 AM, Dave Chinner wrote:
> On Thu, Aug 25, 2011 at 02:06:32AM -0400, Christoph Hellwig wrote:
>> On Tue, Jun 28, 2011 at 11:33:19AM -0400, Josef Bacik wrote:
>>> This is a test to make sure seek_data/seek_hole is acting like it does on
>>> Solaris.  It will check to see if the fs supports finding a hole or not and will adjust as necessary.
>> 
>> Can you resend this with any updates that happened in the meantime?
>> 
>> Dave also still had some comments about semantics, so it might be worth
>> to incorporate that as well.
> 
> The main questions I had when looking at this was how we should
> handle unwritten extents - the only answer I got was along the lines
> of "we'll deal with that once filesystems have implemented
> something". That's a bit of a chicken-and-egg situation, and doesn't
> help me decide what is the best thing to do. I don't want to have to
> re-implement this code when it's decided i did the wrong thing
> initially.

Let's first clarify what you mean by an unwritten extent?  Do you mean a
preallocated extent that returns 0 when read, or do you mean a delayed
allocation extent that was written by the application that is still in
memory but not yet written to disk?

Unfortunately, ZFS has no concept of preallocated extents, so we can't
look to it for precedent, but it definitely has delayed allocation.
Possibly if UFS on Solaris has SEEK_HOLE and also preallocated extents
(I have no idea) it could be tested?

> The most basic question I really want answered is this:
> 
> 	- is preallocated space a HOLE, or is it DATA?
> 
> Whatever the answer, I think it should be consistently
> presented by all filesystems that support preallocation, and it
> should be encoded into the generic SEEK_HOLE/SEEK_DATA tests....

My thought would be that a preallocated extent is still a HOLE, because
it doesn't contain data that an application actually cares about.  On
the other hand, a delalloc extent is DATA because it has something that
an application cares about.

The original reason SEEK_HOLE/SEEK_DATA were brought up over FIEMAP was
"cp" being able to consistently access delalloc data that was only in
the page cache, so if we don't get that right it will have been a pointless
exercise.

> Answering that question then helps answer the more complex questions
> I had, like:
> 
> 	- what does SEEK_DATA return when you have a file layout
> 	  like "hole-prealloc-data"?

I would think only the "data" part, since that is what the definition
of "SEEK_DATA" is IMHO.

> Answers to that sort of question need to be known so we can write
> corner-case tests to correctly verify the filesystem implementation.
> 
> I like to do better than present userspace with an interface that
> behaves vastly different depending on the underlying filesystem, but
> if the answer is "definition and implementation is entirely
> filesystem specific" then I'll just go make something up....
> 
> Cheers,
> 
> Dave.
> -- 
> Dave Chinner
> david@fromorbit.com
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


Cheers, Andreas






WARNING: multiple messages have this Message-ID (diff)
From: Andreas Dilger <adilger@dilger.ca>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com,
	Christoph Hellwig <hch@infradead.org>,
	Josef Bacik <josef@redhat.com>,
	dchinner@redhat.com, linux-fsdevel@vger.kernel.org,
	linux-btrfs@vger.kernel.org, viro@ZenIV.linux.org.uk
Subject: Re: [PATCH] xfstests 255: add a seek_data/seek_hole tester
Date: Thu, 25 Aug 2011 00:51:56 -0600	[thread overview]
Message-ID: <0A267E55-7772-438D-B6A7-89B73020F311@dilger.ca> (raw)
In-Reply-To: <20110825064039.GO3162@dastard>

On 2011-08-25, at 12:40 AM, Dave Chinner wrote:
> On Thu, Aug 25, 2011 at 02:06:32AM -0400, Christoph Hellwig wrote:
>> On Tue, Jun 28, 2011 at 11:33:19AM -0400, Josef Bacik wrote:
>>> This is a test to make sure seek_data/seek_hole is acting like it does on
>>> Solaris.  It will check to see if the fs supports finding a hole or not and will adjust as necessary.
>> 
>> Can you resend this with any updates that happened in the meantime?
>> 
>> Dave also still had some comments about semantics, so it might be worth
>> to incorporate that as well.
> 
> The main questions I had when looking at this was how we should
> handle unwritten extents - the only answer I got was along the lines
> of "we'll deal with that once filesystems have implemented
> something". That's a bit of a chicken-and-egg situation, and doesn't
> help me decide what is the best thing to do. I don't want to have to
> re-implement this code when it's decided i did the wrong thing
> initially.

Let's first clarify what you mean by an unwritten extent?  Do you mean a
preallocated extent that returns 0 when read, or do you mean a delayed
allocation extent that was written by the application that is still in
memory but not yet written to disk?

Unfortunately, ZFS has no concept of preallocated extents, so we can't
look to it for precedent, but it definitely has delayed allocation.
Possibly if UFS on Solaris has SEEK_HOLE and also preallocated extents
(I have no idea) it could be tested?

> The most basic question I really want answered is this:
> 
> 	- is preallocated space a HOLE, or is it DATA?
> 
> Whatever the answer, I think it should be consistently
> presented by all filesystems that support preallocation, and it
> should be encoded into the generic SEEK_HOLE/SEEK_DATA tests....

My thought would be that a preallocated extent is still a HOLE, because
it doesn't contain data that an application actually cares about.  On
the other hand, a delalloc extent is DATA because it has something that
an application cares about.

The original reason SEEK_HOLE/SEEK_DATA were brought up over FIEMAP was
"cp" being able to consistently access delalloc data that was only in
the page cache, so if we don't get that right it will have been a pointless
exercise.

> Answering that question then helps answer the more complex questions
> I had, like:
> 
> 	- what does SEEK_DATA return when you have a file layout
> 	  like "hole-prealloc-data"?

I would think only the "data" part, since that is what the definition
of "SEEK_DATA" is IMHO.

> Answers to that sort of question need to be known so we can write
> corner-case tests to correctly verify the filesystem implementation.
> 
> I like to do better than present userspace with an interface that
> behaves vastly different depending on the underlying filesystem, but
> if the answer is "definition and implementation is entirely
> filesystem specific" then I'll just go make something up....
> 
> Cheers,
> 
> Dave.
> -- 
> Dave Chinner
> david@fromorbit.com
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


Cheers, Andreas





_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2011-08-25  6:51 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-28 15:33 [PATCH 1/4] fs: add SEEK_HOLE and SEEK_DATA flags Josef Bacik
2011-06-28 15:33 ` Josef Bacik
2011-06-28 15:33 ` [PATCH 2/4] Btrfs: implement our own ->llseek Josef Bacik
2011-06-28 15:33   ` Josef Bacik
2011-06-28 15:33 ` [PATCH 3/4] Ext4: handle SEEK_HOLE/SEEK_DATA generically Josef Bacik
2011-06-28 15:33   ` Josef Bacik
2011-06-28 16:29   ` Andreas Dilger
2011-06-28 17:34     ` Josef Bacik
2011-06-28 15:33 ` [PATCH 4/4] fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek Josef Bacik
2011-06-28 15:33   ` Josef Bacik
2011-06-28 15:33 ` [PATCH] xfstests 255: add a seek_data/seek_hole tester Josef Bacik
2011-06-28 15:33   ` Josef Bacik
2011-06-29  6:53   ` Dave Chinner
2011-06-29  6:53     ` Dave Chinner
2011-06-29  6:53     ` Dave Chinner
2011-06-29  6:53     ` Dave Chinner
2011-06-29  7:40     ` Christoph Hellwig
2011-06-29  7:40       ` Christoph Hellwig
2011-06-29 10:42       ` Pádraig Brady
2011-06-29 10:42         ` Pádraig Brady
2011-06-29 10:42         ` Pádraig Brady
2011-06-29 10:42         ` Pádraig Brady
2011-06-29 17:29         ` Sunil Mushran
2011-06-29 17:29           ` Sunil Mushran
2011-06-29 17:29           ` Sunil Mushran
2011-06-29 17:29           ` Sunil Mushran
2011-06-29 17:36           ` Christoph Hellwig
2011-06-29 17:36             ` Christoph Hellwig
2011-06-29 17:40             ` Sunil Mushran
2011-06-29 17:40               ` Sunil Mushran
2011-06-29 21:29           ` Pádraig Brady
2011-06-29 21:29             ` Pádraig Brady
2011-06-29 21:29             ` Pádraig Brady
2011-07-01  9:37         ` Christoph Hellwig
2011-07-01  9:37           ` Christoph Hellwig
2011-06-29 17:10       ` Sunil Mushran
2011-06-29 17:10         ` Sunil Mushran
2011-06-29 17:52         ` Josef Bacik
2011-06-29 17:52           ` Josef Bacik
2011-06-29 13:19     ` Josef Bacik
2011-06-29 13:19       ` Josef Bacik
2011-06-29 13:19       ` Josef Bacik
2011-08-25  6:06   ` Christoph Hellwig
2011-08-25  6:06     ` Christoph Hellwig
2011-08-25  6:40     ` Dave Chinner
2011-08-25  6:40       ` Dave Chinner
2011-08-25  6:51       ` Andreas Dilger [this message]
2011-08-25  6:51         ` Andreas Dilger
2011-08-26  1:35         ` Dave Chinner
2011-08-26  1:35           ` Dave Chinner
2011-08-26  6:24           ` Marco Stornelli
2011-08-26  6:24             ` Marco Stornelli
2011-08-26  6:24             ` Marco Stornelli
2011-08-26 14:41             ` Zach Brown
2011-08-26 14:41               ` Zach Brown
2011-08-26 14:41               ` Zach Brown
2011-08-26 14:41               ` Zach Brown
2011-08-27  8:30               ` Marco Stornelli
2011-08-27  8:30                 ` Marco Stornelli
2011-08-28 10:17                 ` Marco Stornelli
2011-08-28 10:17                   ` Marco Stornelli
2011-08-30 17:42                 ` Sunil Mushran
2011-08-30 17:42                   ` Sunil Mushran
2011-08-31  1:17           ` Sunil Mushran
2011-08-31  1:17             ` Sunil Mushran
2011-08-31  3:29             ` Dave Chinner
2011-08-31  3:29               ` Dave Chinner
2011-08-31  3:53               ` david
2011-08-31  3:53                 ` david
2011-08-31  4:43               ` Sunil Mushran
2011-08-31  4:43                 ` Sunil Mushran
2011-08-31  9:05                 ` Pádraig Brady
2011-08-31  9:05                   ` Pádraig Brady
2011-08-31  9:05                   ` Pádraig Brady
2011-08-31  4:48               ` Dan Merillat
2011-08-31  4:48                 ` Dan Merillat
2011-07-29  9:58 ` [PATCH 1/4] fs: add SEEK_HOLE and SEEK_DATA flags Marco Stornelli
2011-07-29  9:58   ` Marco Stornelli
2011-08-20  9:41 ` Marco Stornelli
2011-08-20  9:41   ` Marco Stornelli
2011-08-20 10:03   ` Marco Stornelli
2011-08-20 10:03     ` Marco Stornelli
2011-08-20 15:36     ` Sunil Mushran
2011-08-20 15:36       ` Sunil Mushran
2011-08-20 16:32       ` Marco Stornelli
2011-08-20 16:32         ` Marco Stornelli
2011-08-22  6:08         ` Sunil Mushran
2011-08-22  6:08           ` Sunil Mushran
2011-08-22 10:56           ` Marco Stornelli
2011-08-22 10:56             ` Marco Stornelli
2011-08-22 10:56             ` Marco Stornelli
2011-08-22 10:56             ` Marco Stornelli
2011-08-22 15:57             ` Sunil Mushran
2011-08-22 15:57               ` Sunil Mushran
2011-08-22 17:56               ` Marco Stornelli
2011-08-22 17:56                 ` Marco Stornelli
2011-08-22 21:22                 ` Sunil Mushran
2011-08-22 21:22                   ` Sunil Mushran
2011-08-23 17:44                   ` Marco Stornelli
2011-08-23 17:44                     ` Marco Stornelli
2011-08-31  0:35                 ` Dave Chinner
2011-08-31  0:35                   ` Dave Chinner
     [not found]   ` <CAGpXXZ+xjhadprkc_LiP3qUypLLkCxdeEmo8+K+6mOnBuNhmLg@mail.gmail.com>
2011-08-20 17:18     ` Greg Freemyer
  -- strict thread matches above, loose matches on Subject: below --
2011-06-27 18:02 Josef Bacik
2011-06-27 18:02 ` [PATCH] xfstests 255: add a seek_data/seek_hole tester Josef Bacik
2011-06-27 18:32   ` Andreas Dilger
2011-06-27 18:47     ` Josef Bacik

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=0A267E55-7772-438D-B6A7-89B73020F311@dilger.ca \
    --to=adilger@dilger.ca \
    --cc=david@fromorbit.com \
    --cc=dchinner@redhat.com \
    --cc=hch@infradead.org \
    --cc=josef@redhat.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@ZenIV.linux.org.uk \
    --cc=xfs@oss.sgi.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.