All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: "Darrick J. Wong" <darrick.wong@oracle.com>,
	Dave Chinner <david@fromorbit.com>
Cc: Eric Sandeen <sandeen@sandeen.net>,
	eguan@redhat.com, linux-xfs@vger.kernel.org,
	fstests@vger.kernel.org
Subject: Re: [PATCH v7] generic: initial fiemap range query test
Date: Thu, 7 Dec 2017 08:55:36 +0200	[thread overview]
Message-ID: <ea697081-b253-e0c2-633c-9a58d6bf1ee1@suse.com> (raw)
In-Reply-To: <20171206224627.GO19219@magnolia>



On  7.12.2017 00:46, Darrick J. Wong wrote:
> On Thu, Dec 07, 2017 at 09:16:03AM +1100, Dave Chinner wrote:
>> On Wed, Dec 06, 2017 at 04:01:58PM -0600, Eric Sandeen wrote:
>>> On 12/6/17 3:57 PM, Dave Chinner wrote:
>>>
>>>> There's a *simple answer* to this problem: fix the new command's
>>>> output.
>>>>
>>>> That is: the user asked for a specific range, so the command itself
>>>> should trim the map returned by the kernel to only display the exact
>>>> range the user asked for.  Then it doesn't matter if the underlying
>>>> filesystem trims the extents or not, because the we're going to do
>>>> that anyway in userspace.
>>>
>>> I have a different opinion:
>>>
>>> xfs_io is a debugging tool; the fiemap command sends an ioctl to the kernel.
>>>
>>> Ranged fiemap queries are a real thing; you put numbers into the kernel,
>>> and you get numbers out of the kernel.
>>>
>>> IMNSO, xfs_io should present to the user /what the kernel returned/,
>>> and not re-interpret it to fit some other notion of correctness if we
>>> don't like what the kernel told us.
>>
>> I hardly think "trimming to the range the user asked for" is
>> "re-interpreting what the kernel told us". It's limiting output
>> range to exactly what the user asked for - the output is still
>> correct regardless of how it's filtered to match what the user asked
>> for....
> 
> ...except that xfs_io is a tool we use to debug the garbage that FIEMAP
> sprays back at userspace, so it absolutely should not be hiding things
> like this from the test suite:
> 
> $ xfs_io -c "fiemap -va 0k 65k" moofile
> moo:
>  EXT: FILE-OFFSET               BLOCK-RANGE            TOTAL FLAGS
>    0: [0..18446744073709551615]: 1585456720..1585456719     0 0x301
>    1: [0..129]:                 hole                     130

Isn't there something similar in xfs_bmapi_read:

  /* Reading past eof, act as though there's a hole up to end. */
                if (eof)

                        got.br_startoff = end;

> 
> (Yay ext4.  WTF does the extent have length 0?)
> 
> So.... historically XFS trimmed the FIEMAP results.  Fix the test to
> reflect the XFS behavior, get ext4 (and btrfs) to fix their weird
> implementations, and leave xfs_io alone.
> 
> (Don't mind me shifting positions. :P)
> 
> --D
> 
>>> If you want to have some user-friendlier behavior where xfs_io layers
>>> behaviors on top of what the kernel provides, then add a "-t" argument for trim,
>>> but hiding ioctl inconsistencies by filtering them through xfs_io sounds
>>> like the wrong approach to me.
>>
>> Just filter the last output in the test, then, so it looks like
>>
>> 2: [128..XXX] data
>>
>> There is absolutely no excuse for creating multiple tests to support
>> a small difference in trailing extent range output from different
>> filesystem.
>>
>> Cheers,
>>
>> Dave.
>> -- 
>> Dave Chinner
>> david@fromorbit.com
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  parent reply	other threads:[~2017-12-07  6:55 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-30 16:05 [PATCH v7] generic: initial fiemap range query test Nikolay Borisov
2017-12-05  8:24 ` Eryu Guan
2017-12-05 16:51   ` Darrick J. Wong
2017-12-06  8:28     ` Eryu Guan
2017-12-06 17:45 ` Darrick J. Wong
2017-12-06 20:51   ` Nikolay Borisov
2017-12-06 21:06     ` Darrick J. Wong
2017-12-06 21:57       ` Dave Chinner
2017-12-06 22:01         ` Eric Sandeen
2017-12-06 22:16           ` Dave Chinner
2017-12-06 22:22             ` Eric Sandeen
2017-12-06 22:46             ` Darrick J. Wong
2017-12-06 23:01               ` Eric Sandeen
2017-12-07  6:55               ` Nikolay Borisov [this message]
2017-12-15  8:33 ` Nikolay Borisov
2017-12-15  8:41   ` Eryu Guan

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=ea697081-b253-e0c2-633c-9a58d6bf1ee1@suse.com \
    --to=nborisov@suse.com \
    --cc=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@sandeen.net \
    /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.