[PATCH 3/4] xfs: exact busy extent tracking

Alex Elder aelder at sgi.com
Thu Apr 21 15:08:20 CDT 2011


On Mon, 2011-04-18 at 02:59 -0400, Christoph Hellwig wrote:
> Update the extent tree in case we have to reuse a busy extent, so that it
> always is kept uptodate.  This is done by replacing the busy list searches
> with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree
> in case of a reuse.  This allows us to allow reusing metadata extents
> unconditionally, and thus avoid log forces especially for allocation btree
> blocks.
> 
> Signed-off-by: Christoph Hellwig <hch at lst.de>

I think you finally got it Christoph.

I have one question--which I may have mentioned before--but
otherwise this looks good.  I think the iterations have
resulted in a better result.

Reviewed-by: Alex Elder <aelder at sgi.com>

. . .

In xfs_alloc_busy_trim():
> @@ -2894,6 +2959,11 @@ fail:
>  	 * re-check if the trimmed extent satisfies the minlen requirement.
>  	 */
>  	spin_unlock(&args->pag->pagb_lock);
> +	if (fbno != bno || flen != len) {
> +		trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len,
> +					  fbno, flen);
> +	}
> +	trace_xfs_alloc_busy_trim(args->mp, args->agno, bno, len, fbno, 0);
>  	*rbno = fbno;
>  	*rlen = 0;
>  }

I don't see why you do two trace calls here, the second
with 0 for the value of flen.





More information about the xfs mailing list