Re: [PATCH] target/file: don't zero iter before iov_iter_bvec

From: Chaitanya Kulkarni
Date: Sat Jan 09 2021 - 15:11:59 EST


On 1/9/21 07:59, Pavel Begunkov wrote:
> iov_iter_bvec() initialises iterators well, no need to pre-zero it
> beforehand as done in fd_execute_rw_aio(). Compilers can't optimise it
> out and generate extra code for that (confirmed with assembly).
It will be great if we can quantify this optimization with the actual
performance
numbers.
> Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx>
> ---
> drivers/target/target_core_file.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
> index cce455929778..5a66854def95 100644
> --- a/drivers/target/target_core_file.c
> +++ b/drivers/target/target_core_file.c
> @@ -267,7 +267,7 @@ fd_execute_rw_aio(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
> struct fd_dev *fd_dev = FD_DEV(dev);
> struct file *file = fd_dev->fd_file;
> struct target_core_file_cmd *aio_cmd;
> - struct iov_iter iter = {};
> + struct iov_iter iter;
> struct scatterlist *sg;
> ssize_t len = 0;
> int ret = 0, i;