Re: [PATCH 2/4] xfs: do not discard alloc btree blocks

Alex Elder
2011-05-19T21:54:30Z

On Wed, 2011-05-04 at 14:55 -0400, Christoph Hellwig wrote:
> Blocks for the allocation btree are allocated from and release to
> the AGFL, and thus frequently reused. Even worse we do not have
> an easy way to avoid using an AGFL block when it is discarded due
> to the simple FILO list of free blocks, and thus can frequently
> stall on blocks that are currently undergoing a discard.
>
> Add a flag to the busy extent tracking structure to skip the discard for
> allocation btree blocks. In normal operation these blocks are reused
> frequently enough that there is no need to discard them anyway, but
> if they spill over to the allocation btree as part of a balance we
> "leak" blocks that we would otherwise discard. We could fix this
> by adding another flag and keeping these block in the rbtree even
> after they aren't busy any more so that we could discard them when
> they migrate out of the AGFL. Given that this would cause significant
> overhead I don't think it's worthwile for now.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

This one looks good. (If you add support for discard
with nodelaylog it will need to be updated.)

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