From: Stefano Garzarella <sgarzare@redhat.com> To: Arseny Krasnov <arseny.krasnov@kaspersky.com> Cc: Stefan Hajnoczi <stefanha@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, "David S. Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Jorgen Hansen <jhansen@vmware.com>, Norbert Slusarek <nslusarek@gmx.net>, Colin Ian King <colin.king@canonical.com>, Andra Paraschiv <andraprs@amazon.com>, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, oxffffaa@gmail.com Subject: Re: [PATCH v10 14/18] virtio/vsock: enable SEQPACKET for transport Date: Thu, 3 Jun 2021 17:22:03 +0200 [thread overview] Message-ID: <20210603152203.gezrjp2xiv53eqpm@steredhat> (raw) In-Reply-To: <20210520191901.1272423-1-arseny.krasnov@kaspersky.com> On Thu, May 20, 2021 at 10:18:57PM +0300, Arseny Krasnov wrote: >To make transport work with SOCK_SEQPACKET two updates were >added: Present is better, and you can also mention that we enable it only if the feature is negotiated with the device. >1) SOCK_SEQPACKET ops for virtio transport and 'seqpacket_allow()' > callback. >2) Handling of SEQPACKET bit: guest tries to negotiate it with vhost. > >Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> >--- > v9 -> v10: > 1) Use 'virtio_has_feature()' to check feature bit. > 2) Move assignment to 'seqpacket_allow' before 'rcu_assign_pointer()'. > > net/vmw_vsock/virtio_transport.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > >diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c >index 2700a63ab095..bc5ee8df723a 100644 >--- a/net/vmw_vsock/virtio_transport.c >+++ b/net/vmw_vsock/virtio_transport.c >@@ -62,6 +62,7 @@ struct virtio_vsock { > struct virtio_vsock_event event_list[8]; > > u32 guest_cid; >+ bool seqpacket_allow; > }; > > static u32 virtio_transport_get_local_cid(void) >@@ -443,6 +444,8 @@ static void virtio_vsock_rx_done(struct virtqueue >*vq) > queue_work(virtio_vsock_workqueue, &vsock->rx_work); > } > >+static bool virtio_transport_seqpacket_allow(u32 remote_cid); >+ > static struct virtio_transport virtio_transport = { > .transport = { > .module = THIS_MODULE, >@@ -469,6 +472,10 @@ static struct virtio_transport virtio_transport = { > .stream_is_active = virtio_transport_stream_is_active, > .stream_allow = virtio_transport_stream_allow, > >+ .seqpacket_dequeue = >virtio_transport_seqpacket_dequeue, >+ .seqpacket_enqueue = virtio_transport_seqpacket_enqueue, >+ .seqpacket_allow = virtio_transport_seqpacket_allow, >+ > .notify_poll_in = virtio_transport_notify_poll_in, > .notify_poll_out = virtio_transport_notify_poll_out, > .notify_recv_init = virtio_transport_notify_recv_init, >@@ -485,6 +492,19 @@ static struct virtio_transport virtio_transport = { > .send_pkt = virtio_transport_send_pkt, > }; > >+static bool virtio_transport_seqpacket_allow(u32 remote_cid) >+{ >+ struct virtio_vsock *vsock; >+ bool seqpacket_allow; >+ >+ rcu_read_lock(); >+ vsock = rcu_dereference(the_virtio_vsock); >+ seqpacket_allow = vsock->seqpacket_allow; >+ rcu_read_unlock(); >+ >+ return seqpacket_allow; >+} >+ > static void virtio_transport_rx_work(struct work_struct *work) > { > struct virtio_vsock *vsock = >@@ -608,6 +628,9 @@ static int virtio_vsock_probe(struct virtio_device *vdev) > vsock->event_run = true; > mutex_unlock(&vsock->event_lock); > >+ if (virtio_has_feature(vdev, VIRTIO_VSOCK_F_SEQPACKET)) >+ vsock->seqpacket_allow = true; >+ > vdev->priv = vsock; > rcu_assign_pointer(the_virtio_vsock, vsock); > >@@ -695,6 +718,7 @@ static struct virtio_device_id id_table[] = { > }; > > static unsigned int features[] = { >+ VIRTIO_VSOCK_F_SEQPACKET > }; > > static struct virtio_driver virtio_vsock_driver = { >-- >2.25.1 >
WARNING: multiple messages have this Message-ID (diff)
From: Stefano Garzarella <sgarzare@redhat.com> To: Arseny Krasnov <arseny.krasnov@kaspersky.com> Cc: Andra Paraschiv <andraprs@amazon.com>, kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, oxffffaa@gmail.com, Norbert Slusarek <nslusarek@gmx.net>, Stefan Hajnoczi <stefanha@redhat.com>, Colin Ian King <colin.king@canonical.com>, Jakub Kicinski <kuba@kernel.org>, "David S. Miller" <davem@davemloft.net>, Jorgen Hansen <jhansen@vmware.com> Subject: Re: [PATCH v10 14/18] virtio/vsock: enable SEQPACKET for transport Date: Thu, 3 Jun 2021 17:22:03 +0200 [thread overview] Message-ID: <20210603152203.gezrjp2xiv53eqpm@steredhat> (raw) In-Reply-To: <20210520191901.1272423-1-arseny.krasnov@kaspersky.com> On Thu, May 20, 2021 at 10:18:57PM +0300, Arseny Krasnov wrote: >To make transport work with SOCK_SEQPACKET two updates were >added: Present is better, and you can also mention that we enable it only if the feature is negotiated with the device. >1) SOCK_SEQPACKET ops for virtio transport and 'seqpacket_allow()' > callback. >2) Handling of SEQPACKET bit: guest tries to negotiate it with vhost. > >Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com> >--- > v9 -> v10: > 1) Use 'virtio_has_feature()' to check feature bit. > 2) Move assignment to 'seqpacket_allow' before 'rcu_assign_pointer()'. > > net/vmw_vsock/virtio_transport.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > >diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c >index 2700a63ab095..bc5ee8df723a 100644 >--- a/net/vmw_vsock/virtio_transport.c >+++ b/net/vmw_vsock/virtio_transport.c >@@ -62,6 +62,7 @@ struct virtio_vsock { > struct virtio_vsock_event event_list[8]; > > u32 guest_cid; >+ bool seqpacket_allow; > }; > > static u32 virtio_transport_get_local_cid(void) >@@ -443,6 +444,8 @@ static void virtio_vsock_rx_done(struct virtqueue >*vq) > queue_work(virtio_vsock_workqueue, &vsock->rx_work); > } > >+static bool virtio_transport_seqpacket_allow(u32 remote_cid); >+ > static struct virtio_transport virtio_transport = { > .transport = { > .module = THIS_MODULE, >@@ -469,6 +472,10 @@ static struct virtio_transport virtio_transport = { > .stream_is_active = virtio_transport_stream_is_active, > .stream_allow = virtio_transport_stream_allow, > >+ .seqpacket_dequeue = >virtio_transport_seqpacket_dequeue, >+ .seqpacket_enqueue = virtio_transport_seqpacket_enqueue, >+ .seqpacket_allow = virtio_transport_seqpacket_allow, >+ > .notify_poll_in = virtio_transport_notify_poll_in, > .notify_poll_out = virtio_transport_notify_poll_out, > .notify_recv_init = virtio_transport_notify_recv_init, >@@ -485,6 +492,19 @@ static struct virtio_transport virtio_transport = { > .send_pkt = virtio_transport_send_pkt, > }; > >+static bool virtio_transport_seqpacket_allow(u32 remote_cid) >+{ >+ struct virtio_vsock *vsock; >+ bool seqpacket_allow; >+ >+ rcu_read_lock(); >+ vsock = rcu_dereference(the_virtio_vsock); >+ seqpacket_allow = vsock->seqpacket_allow; >+ rcu_read_unlock(); >+ >+ return seqpacket_allow; >+} >+ > static void virtio_transport_rx_work(struct work_struct *work) > { > struct virtio_vsock *vsock = >@@ -608,6 +628,9 @@ static int virtio_vsock_probe(struct virtio_device *vdev) > vsock->event_run = true; > mutex_unlock(&vsock->event_lock); > >+ if (virtio_has_feature(vdev, VIRTIO_VSOCK_F_SEQPACKET)) >+ vsock->seqpacket_allow = true; >+ > vdev->priv = vsock; > rcu_assign_pointer(the_virtio_vsock, vsock); > >@@ -695,6 +718,7 @@ static struct virtio_device_id id_table[] = { > }; > > static unsigned int features[] = { >+ VIRTIO_VSOCK_F_SEQPACKET > }; > > static struct virtio_driver virtio_vsock_driver = { >-- >2.25.1 > _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2021-06-03 15:22 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-20 19:13 [PATCH v10 00/18] virtio/vsock: introduce SOCK_SEQPACKET support Arseny Krasnov 2021-05-20 19:14 ` [PATCH v10 01/18] af_vsock: update functions for connectible socket Arseny Krasnov 2021-05-20 19:15 ` [PATCH v10 02/18] af_vsock: separate wait data loop Arseny Krasnov 2021-05-20 19:15 ` [PATCH v10 03/18] af_vsock: separate receive " Arseny Krasnov 2021-05-20 19:16 ` [PATCH v10 04/18] af_vsock: implement SEQPACKET receive loop Arseny Krasnov 2021-05-25 14:08 ` Stefano Garzarella 2021-05-25 14:08 ` Stefano Garzarella 2021-06-04 15:06 ` Stefano Garzarella 2021-06-04 15:06 ` Stefano Garzarella 2021-06-04 18:00 ` [MASSMAIL KLMS] " Arseny Krasnov 2021-06-07 10:48 ` Stefano Garzarella 2021-06-07 10:48 ` Stefano Garzarella 2021-06-07 11:29 ` Arseny Krasnov 2021-06-07 12:28 ` Stefano Garzarella 2021-06-07 12:28 ` Stefano Garzarella 2021-05-20 19:16 ` [PATCH v10 05/18] af_vsock: implement send logic for SEQPACKET Arseny Krasnov 2021-05-20 19:16 ` [PATCH v10 06/18] af_vsock: rest of SEQPACKET support Arseny Krasnov 2021-05-25 14:17 ` Stefano Garzarella 2021-05-25 14:17 ` Stefano Garzarella 2021-05-20 19:16 ` [PATCH v10 07/18] af_vsock: update comments for stream sockets Arseny Krasnov 2021-05-20 19:17 ` [PATCH v10 08/18] virtio/vsock: set packet's type in virtio_transport_send_pkt_info() Arseny Krasnov 2021-05-20 19:17 ` [PATCH v10 09/18] virtio/vsock: simplify credit update function API Arseny Krasnov 2021-05-20 19:17 ` [PATCH v10 10/18] virtio/vsock: defines and constants for SEQPACKET Arseny Krasnov 2021-05-20 19:17 ` [PATCH v10 11/18] virtio/vsock: dequeue callback for SOCK_SEQPACKET Arseny Krasnov 2021-06-03 14:45 ` Stefano Garzarella 2021-06-03 14:45 ` Stefano Garzarella 2021-06-04 13:12 ` Arseny Krasnov 2021-06-04 15:03 ` Stefano Garzarella 2021-06-04 15:03 ` Stefano Garzarella 2021-06-04 18:03 ` Arseny Krasnov 2021-06-07 11:04 ` Stefano Garzarella 2021-06-07 11:04 ` Stefano Garzarella 2021-06-07 13:18 ` Arseny Krasnov 2021-06-08 8:23 ` Stefano Garzarella 2021-06-08 8:23 ` Stefano Garzarella 2021-06-08 9:40 ` Arseny Krasnov 2021-06-08 10:19 ` Stefano Garzarella 2021-06-08 10:19 ` Stefano Garzarella 2021-06-08 10:24 ` Arseny Krasnov 2021-06-08 10:39 ` Stefano Garzarella 2021-06-08 10:39 ` Stefano Garzarella 2021-05-20 19:18 ` [PATCH v10 12/18] virtio/vsock: add SEQPACKET receive logic Arseny Krasnov 2021-06-03 14:56 ` Stefano Garzarella 2021-06-03 14:56 ` Stefano Garzarella 2021-05-20 19:18 ` [PATCH v10 13/18] virtio/vsock: rest of SOCK_SEQPACKET support Arseny Krasnov 2021-06-03 15:14 ` Stefano Garzarella 2021-06-03 15:14 ` Stefano Garzarella 2021-05-20 19:18 ` [PATCH v10 14/18] virtio/vsock: enable SEQPACKET for transport Arseny Krasnov 2021-06-03 15:22 ` Stefano Garzarella [this message] 2021-06-03 15:22 ` Stefano Garzarella 2021-05-20 19:19 ` [PATCH v10 15/18] vhost/vsock: support " Arseny Krasnov 2021-06-03 15:34 ` Stefano Garzarella 2021-06-03 15:34 ` Stefano Garzarella 2021-06-04 13:13 ` Arseny Krasnov 2021-05-20 19:19 ` [PATCH v10 16/18] vsock/loopback: enable " Arseny Krasnov 2021-05-20 19:19 ` [PATCH v10 17/18] vsock_test: add SOCK_SEQPACKET tests Arseny Krasnov 2021-06-03 15:38 ` Stefano Garzarella 2021-06-03 15:38 ` Stefano Garzarella 2021-05-20 19:20 ` [PATCH v10 18/18] virtio/vsock: update trace event for SEQPACKET Arseny Krasnov 2021-06-03 15:40 ` Stefano Garzarella 2021-06-03 15:40 ` Stefano Garzarella 2021-05-21 7:55 ` [PATCH v10 00/18] virtio/vsock: introduce SOCK_SEQPACKET support Stefano Garzarella 2021-05-21 7:55 ` Stefano Garzarella 2021-05-23 12:14 ` Arseny Krasnov 2021-05-25 8:22 ` Arseny Krasnov 2021-05-25 14:52 ` Stefano Garzarella 2021-05-25 14:52 ` Stefano Garzarella 2021-05-26 12:16 ` Arseny Krasnov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210603152203.gezrjp2xiv53eqpm@steredhat \ --to=sgarzare@redhat.com \ --cc=andraprs@amazon.com \ --cc=arseny.krasnov@kaspersky.com \ --cc=colin.king@canonical.com \ --cc=davem@davemloft.net \ --cc=jasowang@redhat.com \ --cc=jhansen@vmware.com \ --cc=kuba@kernel.org \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mst@redhat.com \ --cc=netdev@vger.kernel.org \ --cc=nslusarek@gmx.net \ --cc=oxffffaa@gmail.com \ --cc=stefanha@redhat.com \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.