From: Ric Wheeler <ric@emc.com>
To: Zach Brown <zab@zabbo.net>
Cc: Mike Waychison <mikew@google.com>,
Chris Mason <chris.mason@oracle.com>,
Anton Altaparmakov <aia21@cam.ac.uk>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 0/6][RFC] Cleanup FIBMAP
Date: Wed, 31 Oct 2007 07:06:16 -0400 [thread overview]
Message-ID: <472861A8.8020709@emc.com> (raw)
In-Reply-To: <47263BEC.30501@zabbo.net>
Zach Brown wrote:
>> Can you clarify what you mean above with an example? I don't really
>> follow.
>
> Sure, take 'tar' as an example. It'll read files in the order that
> their names are returned from directory listing. This can produce bad
> IO patterns because the order in which the file names are returned
> doesn't match the order of the file's blocks on disk. (htree, I'm
> looking at you!)
>
> People have noticed that tar-like loads can be sped up greatly just by
> sorting the files by their inode number as returned by stat(), never
> mind the file blocks themselves. One example of this is Chris Mason's
> 'acp'.
>
> http://oss.oracle.com/~mason/acp/
>
> The logical extension of that is to use FIBMAP to find the order of file
> blocks on disk and then doing IO on blocks in sorted order. It'd take
> work to write an app that does this reliably, sure.
>
> In this use the application doesn't actually care what the absolute
> numbers are. It cares about their ordering. File systems would be able
> to chose whatever scheme they wanted for the actual values of the
> results from a FIBMAP-alike as long as the sorting resulted in the right
> IO patterns.
>
> Arguing that this use is significant enough to justify an addition to
> the file system API is a stretch. I'm just sharing the observation.
>
> - z
I use FIBMAP support for a few different things.
The first is to exactly the case that you describe above where we can
use the first block of a file extracted by FIBMAP to produce an optimal
sorting for the read order. My testing showed that the cost of the
extra fibmap was not too high compared to the speedup, but it was not a
huge gain over the speedup gained when the read was done in inode sorted
order.
The second use case is to look at the physical layout of blocks on disk
for a specific file, use Mark Lord's write_long patches to inject a disk
error and then read that file to make sure that we are handling disk IO
errors correctly. A bit obscure, but really quite useful.
We have also used FIBMAP a few times to try and map an observed IO error
back to a file. Really slow and painful to do, but should work on any
file system when a better method is not supported.
ric
next prev parent reply other threads:[~2007-10-31 11:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-26 23:37 [patch 0/6][RFC] Cleanup FIBMAP Mike Waychison
2007-10-26 23:37 ` [patch 1/6][RFC] Keep FIBMAP from looking at negative block nrs Mike Waychison
2007-10-26 23:37 ` [patch 2/6][RFC] Allow FIBMAP to return EFBIG on large filesystems Mike Waychison
2007-10-26 23:37 ` [patch 3/6][RFC] Move FIBMAP logic Mike Waychison
2007-10-26 23:37 ` [patch 4/6][RFC] Attempt to plug race with truncate Mike Waychison
2007-10-29 13:36 ` Chris Mason
2007-10-26 23:37 ` [patch 5/6][RFC] Introduce FIBMAP64 Mike Waychison
2007-10-29 13:45 ` Chris Mason
2007-10-26 23:37 ` [patch 6/6][RFC] Drop CAP_SYS_RAWIO requirement on FIBMAP Mike Waychison
2007-10-27 17:57 ` [patch 0/6][RFC] Cleanup FIBMAP Anton Altaparmakov
2007-10-27 21:45 ` Szabolcs Szakacsits
2007-10-29 14:10 ` Chris Mason
2007-10-29 16:30 ` Zach Brown
2007-10-29 19:18 ` Mike Waychison
2007-10-29 19:46 ` Chris Mason
2007-10-29 20:01 ` Zach Brown
2007-10-29 20:00 ` Zach Brown
2007-10-31 11:06 ` Ric Wheeler [this message]
2007-10-31 16:16 ` Zach Brown
2007-10-31 17:17 ` Ric Wheeler
2007-10-29 19:16 ` Mike Waychison
2007-10-29 19:47 ` Andreas Dilger
2007-10-28 0:43 ` H. Peter Anvin
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=472861A8.8020709@emc.com \
--to=ric@emc.com \
--cc=aia21@cam.ac.uk \
--cc=chris.mason@oracle.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikew@google.com \
--cc=zab@zabbo.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).