Re: [PATCH-v5 0/4] vsock: cancel connect packets when failing to connect
From: Peng TaoDate: Wed, 15 Mar 2017 09:32:13 +0800 > Currently, if a connect call fails on a signal or timeout (e.g., guest is > still > in the process of starting up), we'll just return to caller and leave the > connect > packet queued and they are sent even though the connection is considered a > failure, > which can confuse applications with unwanted false connect attempt. > > The patchset enables vsock (both host and guest) to cancel queued packets when > a connect attempt is considered to fail. > > v5 changelog: > - change virtio_vsock_pkt->cancel_token back to virtio_vsock_pkt->vsk > v4 changelog: > - drop two unnecessary void * cast > - update new callback comment > v3 changelog: > - define cancel_pkt callback in struct vsock_transport rather than struct > virtio_transport > - rename virtio_vsock_pkt->vsk to virtio_vsock_pkt->cancel_token > v2 changelog: > - fix queued_replies counting and resume tx/rx when necessary Series applied, thanks.
Re: [PATCH-v5 0/4] vsock: cancel connect packets when failing to connect
On Wed, Mar 15, 2017 at 09:32:13AM +0800, Peng Tao wrote: > Currently, if a connect call fails on a signal or timeout (e.g., guest is > still > in the process of starting up), we'll just return to caller and leave the > connect > packet queued and they are sent even though the connection is considered a > failure, > which can confuse applications with unwanted false connect attempt. > > The patchset enables vsock (both host and guest) to cancel queued packets when > a connect attempt is considered to fail. > > v5 changelog: > - change virtio_vsock_pkt->cancel_token back to virtio_vsock_pkt->vsk As discussed previously, it's an opaque token that is not interpreted or dereferenced. A unique integer could be used instead of the pointer we conveniently use as the token today. I still think it should be void * or uintptr_t, but let's move on. Reviewed-by: Stefan Hajnoczisignature.asc Description: PGP signature
[PATCH-v5 0/4] vsock: cancel connect packets when failing to connect
Currently, if a connect call fails on a signal or timeout (e.g., guest is still in the process of starting up), we'll just return to caller and leave the connect packet queued and they are sent even though the connection is considered a failure, which can confuse applications with unwanted false connect attempt. The patchset enables vsock (both host and guest) to cancel queued packets when a connect attempt is considered to fail. v5 changelog: - change virtio_vsock_pkt->cancel_token back to virtio_vsock_pkt->vsk v4 changelog: - drop two unnecessary void * cast - update new callback comment v3 changelog: - define cancel_pkt callback in struct vsock_transport rather than struct virtio_transport - rename virtio_vsock_pkt->vsk to virtio_vsock_pkt->cancel_token v2 changelog: - fix queued_replies counting and resume tx/rx when necessary Cheers, Tao Peng Tao (4): vsock: track pkt owner vsock vhost-vsock: add pkt cancel capability vsock: add pkt cancel capability vsock: cancel packets when failing to connect drivers/vhost/vsock.c | 41 include/linux/virtio_vsock.h| 3 +++ include/net/af_vsock.h | 3 +++ net/vmw_vsock/af_vsock.c| 14 +++ net/vmw_vsock/virtio_transport.c| 42 + net/vmw_vsock/virtio_transport_common.c | 7 ++ 6 files changed, 110 insertions(+) -- 2.7.4