[Cluster-devel] [GFS2] [Patch] gfs2_alloc_required performance

Steven Whitehouse swhiteho at redhat.com
Fri Jan 11 21:06:40 UTC 2008


Hi,

Now in the -nmw git tree,

Steve.

On Fri, 2008-01-11 at 13:44 -0600, Bob Peterson wrote:
> Hi,
> 
> This is a small I/O performance enhancement to gfs2.  (Actually, it is a rework of
> an earlier version I got wrong).  The idea here is to check if the write extends
> past the last block in the file.  If so, the function can save itself a lot of
> time and trouble because it knows an allocate will be required.  Benchmarks like
> iozone should see better performance.
> 
> Regards,
> 
> Bob Peterson
> Red Hat GFS
> 
> Signed-off-by: Bob Peterson <rpeterso at redhat.com> 
> --
>  fs/gfs2/bmap.c   |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
> index 73dfad7..4356cc2 100644
> --- a/fs/gfs2/bmap.c
> +++ b/fs/gfs2/bmap.c
> @@ -1224,6 +1224,11 @@ int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset,
>  		unsigned int shift = sdp->sd_sb.sb_bsize_shift;
>  		lblock = offset >> shift;
>  		lblock_stop = (offset + len + sdp->sd_sb.sb_bsize - 1) >> shift;
> +		if (lblock_stop > ip->i_di.di_blocks) { /* writing past the
> +							   last block */
> +			*alloc_required = 1;
> +			return 0;
> +		}
>  	}
>  
>  	for (; lblock < lblock_stop; lblock += extlen) {
> 
> 




More information about the Cluster-devel mailing list