2020-12-08 14:01:16

by Michael S. Tsirkin

[permalink] [raw]
Subject: Re: [PATCH] virtio: replace constant parameter '1' with num

On Tue, Dec 08, 2020 at 07:57:51PM +0800, liush wrote:
> 'num' can represent the value of out_sgs(in_sags), no need to pass
> in constant parameters in 'virtqueue_add'.
>
> Signed-off-by: liush <[email protected]>

Point being?
A constant is likely easier for the compiler to optimize ...

> ---
> drivers/virtio/virtio_ring.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
> index becc776..7583f8b 100644
> --- a/drivers/virtio/virtio_ring.c
> +++ b/drivers/virtio/virtio_ring.c
> @@ -1760,7 +1760,7 @@ int virtqueue_add_outbuf(struct virtqueue *vq,
> void *data,
> gfp_t gfp)
> {
> - return virtqueue_add(vq, &sg, num, 1, 0, data, NULL, gfp);
> + return virtqueue_add(vq, &sg, num, num, 0, data, NULL, gfp);
> }
> EXPORT_SYMBOL_GPL(virtqueue_add_outbuf);
>
> @@ -1782,7 +1782,7 @@ int virtqueue_add_inbuf(struct virtqueue *vq,
> void *data,
> gfp_t gfp)
> {
> - return virtqueue_add(vq, &sg, num, 0, 1, data, NULL, gfp);
> + return virtqueue_add(vq, &sg, num, 0, num, data, NULL, gfp);
> }
> EXPORT_SYMBOL_GPL(virtqueue_add_inbuf);
>
> --
> 2.7.4


2020-12-09 02:19:18

by 刘邵华BTD

[permalink] [raw]
Subject: 回复:[PATCH] virtio: replace constant parameter '1 ' with num

Hi Michael,
>> 'num' can represent the value of out_sgs(in_sags), no need to pass
>> in constant parameters in 'virtqueue_add'.
>>
>> Signed-off-by: liush <[email protected]>

>Point being?
>A constant is likely easier for the compiler to optimize ...

Thanks.
I was unaware that a constant was for compiler optimization.
It seems that 'num' is more readable compared to a constant. And 'virtqueue_add_*'
does not specify that only one buf is added, but ‘1’ is passed in ‘virtqueue_add’,
which limits the function of 'virtqueue_add_*'. Besides compilation optimization,
are there any other considerations.

>> ---
>> drivers/virtio/virtio_ring.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
>> index becc776..7583f8b 100644
>> --- a/drivers/virtio/virtio_ring.c
>> +++ b/drivers/virtio/virtio_ring.c
>> @@ -1760,7 +1760,7 @@ int virtqueue_add_outbuf(struct virtqueue *vq,
>> void *data,
>> gfp_t gfp)
>> {
>> - return virtqueue_add(vq, &sg, num, 1, 0, data, NULL, gfp);
>> + return virtqueue_add(vq, &sg, num, num, 0, data, NULL, gfp);
>> }
>> EXPORT_SYMBOL_GPL(virtqueue_add_outbuf);
>>
>> @@ -1782,7 +1782,7 @@ int virtqueue_add_inbuf(struct virtqueue *vq,
>> void *data,
>> gfp_t gfp)
>> {
>> - return virtqueue_add(vq, &sg, num, 0, 1, data, NULL, gfp);
>> + return virtqueue_add(vq, &sg, num, 0, num, data, NULL, gfp);
>> }
>> EXPORT_SYMBOL_GPL(virtqueue_add_inbuf);
>>
>> --