xfs
[Top] [All Lists]

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

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 3/4] xfs: exact busy extent tracking
From: Alex Elder <aelder@xxxxxxx>
Date: Thu, 21 Apr 2011 15:08:20 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20110418070043.915023373@xxxxxxxxxxxxxxxxxxxxxx>
References: <20110418065936.355024592@xxxxxxxxxxxxxxxxxxxxxx> <20110418070043.915023373@xxxxxxxxxxxxxxxxxxxxxx>
Reply-to: aelder@xxxxxxx
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.


<Prev in Thread] Current Thread [Next in Thread>