Re: [RFC] fsblock

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Nick Piggin
Date: Thursday, June 28, 2007 - 7:33 pm

On Thu, Jun 28, 2007 at 08:20:31AM -0400, Chris Mason wrote:

Now I wouldn't for a minute deny that at least some of the block
information would be well to store in extent/tree format (if XFS 
does it it must be good!).

And yes, I'm sure filesystems with even basic block based allocation
could get a reasonable ratio of blocks to extents.

However I think it is fundamentally another layer or at least
more complexity... fsblocks uses the existing pagecache mapping as
(much of) the data structure and uses the existing pagecache locking
for the locking. And it fundamentally just provides a block access
and IO layer into the pagecache for the filesystem, which I think will
often be needed anyway.

But that said, I would like to see a generic extent mapping layer
sitting between fsblock and the filesystem (I might even have a crack
at it myself)... and I could be proven completely wrong and it may be
that fsblock isn't required at all after such a layer goes in. So I
will try to keep all the APIs extent based.

The first thing I actually looked at for "get_blocks" was for the
filesystem to build up a tree of mappings itself, completely unconnected
from the pagecache. It just ended up being a little more work and
locking but the idea isn't insane :)



The aim for fsblocks is that any page under IO will always have fsblocks,
which I hope is going to make this easy. In the fsblocks patch I sent out
there is a window (with mmapped pages), however that's a bug wich can be
fixed rather than a fundamental problem. So writepages will be less problem.

Readpages may indeed be more efficient and block mapping with extents than
individual fsblocks (or it could be, if it were an extent based API itself).

Well I don't know. Extents are always going to have benefits, but I don't
know if it means the fsblock part could go away completely. I'll keep
it in mind though.

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC] fsblock, Nick Piggin, (Sat Jun 23, 6:45 pm)
[patch 1/3] add the fsblock layer, Nick Piggin, (Sat Jun 23, 6:46 pm)
[patch 2/3] block_dev: convert to fsblock, Nick Piggin, (Sat Jun 23, 6:46 pm)
[patch 3/3] minix: convert to fsblock, Nick Piggin, (Sat Jun 23, 6:47 pm)
Re: [RFC] fsblock, Nick Piggin, (Sat Jun 23, 6:53 pm)
Re: [RFC] fsblock, Jeff Garzik, (Sat Jun 23, 8:07 pm)
Re: [RFC] fsblock, Nick Piggin, (Sat Jun 23, 8:47 pm)
Re: [RFC] fsblock, William Lee Irwin III, (Sat Jun 23, 9:19 pm)
Re: [RFC] fsblock, Chris Mason, (Sun Jun 24, 6:51 am)
Re: [RFC] fsblock, Andi Kleen, (Sun Jun 24, 7:16 am)
Re: [patch 1/3] add the fsblock layer, Andi Kleen, (Sun Jun 24, 8:28 am)
Re: [patch 1/3] add the fsblock layer, Arjan van de Ven, (Sun Jun 24, 1:18 pm)
Re: [RFC] fsblock, Nick Piggin, (Sun Jun 24, 11:58 pm)
Re: [RFC] fsblock, Nick Piggin, (Mon Jun 25, 12:16 am)
Re: [patch 1/3] add the fsblock layer, Nick Piggin, (Mon Jun 25, 12:19 am)
Re: [patch 1/3] add the fsblock layer, Andi Kleen, (Mon Jun 25, 1:58 am)
Re: [RFC] fsblock, Chris Mason, (Mon Jun 25, 5:25 am)
Re: [patch 1/3] add the fsblock layer, Chris Mason, (Mon Jun 25, 6:19 am)
Re: [patch 1/3] add the fsblock layer, Nick Piggin, (Mon Jun 25, 7:42 pm)
Re: [RFC] fsblock, David Chinner, (Mon Jun 25, 8:06 pm)
Re: [RFC] fsblock, Nick Piggin, (Mon Jun 25, 8:55 pm)
Re: [RFC] fsblock, David Chinner, (Tue Jun 26, 2:23 am)
Re: [RFC] fsblock, Nick Piggin, (Tue Jun 26, 4:14 am)
Re: [RFC] fsblock, Chris Mason, (Tue Jun 26, 5:34 am)
Re: [RFC] fsblock, Nick Piggin, (Tue Jun 26, 10:32 pm)
Re: [RFC] fsblock, David Chinner, (Tue Jun 26, 11:05 pm)
Re: [RFC] fsblock, Chris Mason, (Wed Jun 27, 4:50 am)
Re: [RFC] fsblock, Kyle Moffett, (Wed Jun 27, 5:39 am)
Re: [RFC] fsblock, Anton Altaparmakov, (Wed Jun 27, 8:18 am)
Re: [RFC] fsblock, David Chinner, (Wed Jun 27, 3:35 pm)
Re: [RFC] fsblock, Nick Piggin, (Wed Jun 27, 7:44 pm)
Re: [RFC] fsblock, Chris Mason, (Thu Jun 28, 5:20 am)
Re: [RFC] fsblock, David Chinner, (Thu Jun 28, 7:08 pm)
Re: [RFC] fsblock, Nick Piggin, (Thu Jun 28, 7:33 pm)
Re: [RFC] fsblock, Christoph Hellwig, (Sat Jun 30, 3:42 am)
Re: [RFC] fsblock, Christoph Hellwig, (Sat Jun 30, 3:44 am)
Re: [RFC] fsblock, Christoph Hellwig, (Sat Jun 30, 4:05 am)
Re: [RFC] fsblock, Jeff Garzik, (Sat Jun 30, 4:10 am)
Re: [RFC] fsblock, Christoph Hellwig, (Sat Jun 30, 4:13 am)
Re: [RFC] fsblock, Christoph Lameter, (Mon Jul 9, 10:14 am)
Re: [RFC] fsblock, Nick Piggin, (Mon Jul 9, 5:54 pm)
Re: [RFC] fsblock, Christoph Lameter, (Mon Jul 9, 5:59 pm)
Re: [RFC] fsblock, Nick Piggin, (Mon Jul 9, 6:07 pm)
Re: [RFC] fsblock, Dave McCracken, (Mon Jul 9, 6:37 pm)