Re: [PATCH net-next v9 2/4] virtio/vsock: send credit update during setting SO_RCVLOWAT

From: Stefano Garzarella
Date: Thu Dec 14 2023 - 04:57:47 EST


On Thu, Dec 14, 2023 at 12:19:45PM +0300, Arseniy Krasnov wrote:
Send credit update message when SO_RCVLOWAT is updated and it is bigger
than number of bytes in rx queue. It is needed, because 'poll()' will
wait until number of bytes in rx queue will be not smaller than
SO_RCVLOWAT, so kick sender to send more data. Otherwise mutual hungup
for tx/rx is possible: sender waits for free space and receiver is
waiting data in 'poll()'.

Fixes: b89d882dc9fc ("vsock/virtio: reduce credit update messages")
Signed-off-by: Arseniy Krasnov <avkrasnov@xxxxxxxxxxxxxxxxx>
Reviewed-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>
Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
---
Changelog:
v1 -> v2:
* Update commit message by removing 'This patch adds XXX' manner.
* Do not initialize 'send_update' variable - set it directly during
first usage.
v3 -> v4:
* Fit comment in 'virtio_transport_notify_set_rcvlowat()' to 80 chars.
v4 -> v5:
* Do not change callbacks order in transport structures.
v5 -> v6:
* Reorder callbacks in transport structures.
* Do to send credit update when 'fwd_cnt' == 'last_fwd_cnt'.
v8 -> v9:
* Add 'Fixes' tag.

drivers/vhost/vsock.c | 1 +
include/linux/virtio_vsock.h | 1 +
net/vmw_vsock/virtio_transport.c | 1 +
net/vmw_vsock/virtio_transport_common.c | 30 +++++++++++++++++++++++++
net/vmw_vsock/vsock_loopback.c | 1 +
5 files changed, 34 insertions(+)

As I already mentioned in the cover letter, this patch doesn't compile
unless we apply patch 3 before this one, so:

Nacked-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>