From: Greg Banks <gnb@sgi.com>
To: David Chinner <dgc@sgi.com>
Cc: Neil Brown <neilb@suse.de>,
Linux Filesystem Mailing List <linux-fsdevel@vger.kernel.org>,
David Chinner <dgc@melbourne.sgi.com>,
Donald Douwsma <donaldd@melbourne.sgi.com>,
Christoph Hellwig <hch@infradead.org>,
Roger Strassburg <rls@sgi.com>, Mark Goodwin <markgw@sgi.com>,
Brett Jon Grandbois <brettg@melbourne.sgi.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: Re: Proposal to improve filesystem/block snapshot interaction
Date: Wed, 31 Oct 2007 15:01:58 +1100 [thread overview]
Message-ID: <20071031040158.GC9041@sgi.com> (raw)
In-Reply-To: <20071030235652.GY995458@sgi.com>
On Wed, Oct 31, 2007 at 10:56:52AM +1100, David Chinner wrote:
> On Tue, Oct 30, 2007 at 03:16:06PM +1100, Neil Brown wrote:
> > On Tuesday October 30, gnb@sgi.com wrote:
> > > BIO_HINT_RELEASE
> > > The bio's block extent is no longer in use by the filesystem
> > > and will not be read in the future. Any storage used to back
> > > the extent may be released without any threat to filesystem
> > > or data integrity.
> >
> > If the allocation unit of the storage device (e.g. a few MB) does not
> > match the allocation unit of the filesystem (e.g. a few KB) then for
> > this to be useful either the storage device must start recording tiny
> > allocations, or the filesystem should re-release areas as they grow.
> > i.e. when releasing a range of a device, look in the filesystem's usage
> > records for the largest surrounding free space, and release all of that.
>
> I figured that the easiest way around this is reporting free space
> extents, not the amoutn actually freed. e.g.
>
> 4k in file A @ block 10
> 4k in file B @ block 11
> 4k free space @ block 12
> 4k in file C @ block 13
> 1008k in free space at block 14.
>
> If we free file A, we report that we've released an extent of 4k @ block 10.
> if we then free file B, we report we've released an extent of 12k @ block 10.
> If we then free file C, we report a release of 1024k @ block 10.
>
> Then the underlying device knows what the aggregated free space regions
> are and can easily release large regions without needing to track tiny
> allocations and frees done by the filesystem.
If you could do that in the filesystem, it certainly solve the problem.
In which case I'll explicitly allow for the hint's extent to overlap
extents previous extents thus hinted, and define the semantics
for overlaps. I think I'll rename the hint to BIO_HINT_RELEASED,
I think that will make the semantics a little clearer.
Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
Apparently, I'm Bedevere. Which MPHG character are you?
I don't speak for SGI.
next prev parent reply other threads:[~2007-10-31 3:53 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070927063113.GD2989@sgi.com>
2007-10-30 1:04 ` Proposal to improve filesystem/block snapshot interaction Greg Banks
2007-10-30 1:11 ` Greg Banks
2007-10-30 4:16 ` Neil Brown
2007-10-30 5:12 ` Greg Banks
2007-10-30 7:43 ` Arnd Bergmann
2007-11-20 23:43 ` Roger Strassburg
2007-10-30 23:56 ` David Chinner
2007-10-31 4:01 ` Greg Banks [this message]
2007-10-31 7:04 ` David Chinner
2007-10-30 9:35 ` Dongjun Shin
2007-10-30 10:15 ` Arnd Bergmann
2007-10-30 10:49 ` Dongjun Shin
2007-10-30 12:38 ` Arnd Bergmann
2007-10-30 14:19 ` Dongjun Shin
2007-10-30 15:37 ` Jörn Engel
2007-10-30 16:37 ` Arnd Bergmann
2007-10-30 23:19 ` Kyungmin Park
2007-10-30 23:42 ` Kyungmin Park
2007-10-30 14:06 ` Jörn Engel
2007-10-31 3:44 ` Greg Banks
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=20071031040158.GC9041@sgi.com \
--to=gnb@sgi.com \
--cc=arnd@arndb.de \
--cc=brettg@melbourne.sgi.com \
--cc=dgc@melbourne.sgi.com \
--cc=dgc@sgi.com \
--cc=donaldd@melbourne.sgi.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=markgw@sgi.com \
--cc=neilb@suse.de \
--cc=rls@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 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).