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@xxxxxx>
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@xxxxxxx>
. . .
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.
|