Hi,
Following patches add support to map multiple blocks in ->get_block().
This is will allow us to handle mapping of multiple disk blocks for
mpage_readpages() and mpage_writepages() etc. Instead of adding new
argument, I use "b_size" to indicate the amount of disk mapping needed
for get_block().
Now that get_block() can handle multiple blocks, there is no need
for ->get_blocks() which was added for DIO. Second patch removes
them.
[PATCH 1/2] map multiple blocks in get_block() for mpage_readpages()
[PATCH 2/2] remove ->get_blocks() support
Andrew, Please let me know if you want to pick these up into -mm
tree, since they need to be integrated with Mingming's ext3 multiblock
support.
Comments ?
Thanks,
Badari
This patch changes mpage_readpages() and get_block() to
get the disk mapping information for multiple blocks at the
same time.
Instead of adding new get_blocks() and pass it around every
where, I overload b_size of bufferhead to pass in how much
disk mapping we are requesting. Only the filesystems who
care to use this information and provide multiple disk
blocks at a time can choose to do so.
No changes are needed for the filesystems who wants to ignore this.
Thanks,
Badari
Now that get_block() can handle mapping multiple disk blocks,
no need to have ->get_blocks(). This patch removes fs specific
->get_blocks() added for DIO and makes it users use get_block()
instead.
Thanks,
Badari
On Tue, 2006-02-14 at 16:02 -0800, Badari Pulavarty wrote:
> Hi,
>
> Following patches add support to map multiple blocks in ->get_block().
> This is will allow us to handle mapping of multiple disk blocks for
> mpage_readpages() and mpage_writepages() etc. Instead of adding new
> argument, I use "b_size" to indicate the amount of disk mapping needed
> for get_block().
>
> Now that get_block() can handle multiple blocks, there is no need
> for ->get_blocks() which was added for DIO. Second patch removes
> them.
>
> [PATCH 1/2] map multiple blocks in get_block() for mpage_readpages()
>
> [PATCH 2/2] remove ->get_blocks() support
>
>
> Andrew, Please let me know if you want to pick these up into -mm
> tree, since they need to be integrated with Mingming's ext3 multiblock
> support.
>
Hi Badari,
Patch looks good. Did you get a chance to combine your patches with the
ext3 multiple blocks map/allocation patches, and run some simple
buffered-IO read tests? It would be nice to see if there is any
performance or cpu-usage gain (or regression).
Mingming
On Wed, 2006-02-15 at 13:29 -0800, Mingming Cao wrote:
> On Tue, 2006-02-14 at 16:02 -0800, Badari Pulavarty wrote:
> > Hi,
> >
> > Following patches add support to map multiple blocks in ->get_block().
> > This is will allow us to handle mapping of multiple disk blocks for
> > mpage_readpages() and mpage_writepages() etc. Instead of adding new
> > argument, I use "b_size" to indicate the amount of disk mapping needed
> > for get_block().
> >
> > Now that get_block() can handle multiple blocks, there is no need
> > for ->get_blocks() which was added for DIO. Second patch removes
> > them.
> >
> > [PATCH 1/2] map multiple blocks in get_block() for mpage_readpages()
> >
> > [PATCH 2/2] remove ->get_blocks() support
> >
> >
> > Andrew, Please let me know if you want to pick these up into -mm
> > tree, since they need to be integrated with Mingming's ext3 multiblock
> > support.
> >
>
> Hi Badari,
>
> Patch looks good. Did you get a chance to combine your patches with the
> ext3 multiple blocks map/allocation patches, and run some simple
> buffered-IO read tests? It would be nice to see if there is any
> performance or cpu-usage gain (or regression).
Here are the patches against -mm tree, with your ext3 mblock work.
Can you give it a test and see how they do ?
Thanks,
Badari