Re: [PATCH 15/16] xfs: only run xfs_error_test if error injection is active

Christoph Hellwig
2010-11-08T11:31:45Z

> Walking btree blocks during allocation checking them requires each
> block (a cache hit, so no I/O) call xfs_error_test(), which then
> does a random32() call as teh first operation. IOWs, ~50% of the
> CPU is being consumed just testing whether we need to inject an
> error, even though error injection is not active.
>
> Kill this overhead when error injection is not active by adding a
> global counter of active error traps and only calling into
> xfs_error_test when fault injection is active.

Looks good. And a good reminder that we should optimize the code to not
call xfs_btree_check_block on catch matches once putting the CRC checks
into it later.

Reviewed-by: Christoph Hellwig <hch@lst.de>