]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
xfs: online scrub needn't bother zeroing its temporary buffer
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 5 Jul 2019 17:29:56 +0000 (10:29 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Fri, 5 Jul 2019 17:29:56 +0000 (10:29 -0700)
commit036f463fe15db26c2d90724203e4a7ea8f9b8580
tree80961f1c6ddd147992c4d1213577e416d0a5e26b
parent6d6ccedd76823c28115bd6925342ceb73bab6cd4
xfs: online scrub needn't bother zeroing its temporary buffer

The xattr scrubber functions use the temporary memory buffer either for
storing bitmaps or for testing if attribute value extraction works.  The
bitmap code always zeroes what it needs and the value extraction sets
the buffer contents, so it's not necessary to waste CPU time zeroing on
allocation.

Note that while we never read the contents that the attr value
extraction function sets, we do need to call it to check the remote
attribute header and CRCs to check for corruption.

A flame graph analysis showed that we were spending 7% of a xfs_scrub
run (the whole program, not just the attr scrubber itself) allocating
and zeroing 64k segments needlessly.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
fs/xfs/scrub/attr.c