Re: [PATCH v2] block: optimise bvec_iter_advance()

From: Jens Axboe
Date: Tue Dec 03 2019 - 09:37:10 EST


On 11/30/19 1:23 PM, Pavel Begunkov wrote:
bvec_iter_advance() is quite popular, but compilers fail to do proper
alias analysis and optimise it good enough. The assembly is checked
for gcc 9.2, x86-64.

- remove @iter->bi_size from min(...), as it's always less than @bytes.
Modify at the beginning and forget about it.

- the compiler isn't able to collapse memory dependencies and remove
writes in the loop. Help it by explicitely using local vars.

Applied, thanks.

--
Jens Axboe