lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 15 Aug 2016 02:16:51 +0300
From:	"Michael S. Tsirkin" <mst@...hat.com>
To:	ggarcia@...a.uab.cat
Cc:	netdev@...r.kernel.org, stefanha@...hat.com
Subject: Re: [PATCH v2 1/1] VSOCK: remove more space available check filling
 TX vq

On Wed, Aug 10, 2016 at 05:24:34PM +0200, ggarcia@...a.uab.cat wrote:
> From: Gerard Garcia <ggarcia@...c.uab.cat>
> 
> Remove unnecessary use of enable/disable callback notifications
> and the incorrect more space available check.
> 
> The virtio_transport_tx_work handles when the TX virtqueue
> has more buffers available.
> 
> Signed-off-by: Gerard Garcia <ggarcia@...c.uab.cat>
> Acked-by: Stefan Hajnoczi <stefanha@...hat.com>

Generally enable/disable is a worthwhile optimization,
but if Stefan wants to keep code simple for now,
I don't have a problem with that.

> ---
> 
> v2:
>  * Comment style.
> 
>  net/vmw_vsock/virtio_transport.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
> index 699dfab..936d7ee 100644
> --- a/net/vmw_vsock/virtio_transport.c
> +++ b/net/vmw_vsock/virtio_transport.c
> @@ -87,9 +87,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
>  
>  	vq = vsock->vqs[VSOCK_VQ_TX];
>  
> -	/* Avoid unnecessary interrupts while we're processing the ring */
> -	virtqueue_disable_cb(vq);
> -
>  	for (;;) {
>  		struct virtio_vsock_pkt *pkt;
>  		struct scatterlist hdr, buf, *sgs[2];
> @@ -99,7 +96,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
>  		spin_lock_bh(&vsock->send_pkt_list_lock);
>  		if (list_empty(&vsock->send_pkt_list)) {
>  			spin_unlock_bh(&vsock->send_pkt_list_lock);
> -			virtqueue_enable_cb(vq);
>  			break;
>  		}
>  
> @@ -118,13 +114,13 @@ virtio_transport_send_pkt_work(struct work_struct *work)
>  		}
>  
>  		ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL);
> +		/* Usually this means that there is no more space available in
> +		 * the vq
> +		 */
>  		if (ret < 0) {
>  			spin_lock_bh(&vsock->send_pkt_list_lock);
>  			list_add(&pkt->list, &vsock->send_pkt_list);
>  			spin_unlock_bh(&vsock->send_pkt_list_lock);
> -
> -			if (!virtqueue_enable_cb(vq) && ret == -ENOSPC)
> -				continue; /* retry now that we have more space */
>  			break;
>  		}
>  
> -- 
> 2.9.1

Powered by blists - more mailing lists