virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
  • * Re: [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc
           [not found] <cover.1660362668.git.bobby.eshleman@bytedance.com>
           [not found] ` <d81818b868216c774613dd03641fcfe63cc55a45.1660362668.git.bobby.eshleman@bytedance.com>
    @ 2022-08-15 20:39 ` Michael S. Tsirkin
      2022-08-16  7:00 ` Stefano Garzarella
                       ` (5 subsequent siblings)
      7 siblings, 0 replies; 23+ messages in thread
    From: Michael S. Tsirkin @ 2022-08-15 20:39 UTC (permalink / raw)
      To: Bobby Eshleman
      Cc: Bobby Eshleman, Wei Liu, Cong Wang, Stephen Hemminger,
    	Bobby Eshleman, Jiang Wang, Dexuan Cui, Haiyang Zhang,
    	linux-kernel, virtualization, Eric Dumazet, netdev,
    	Stefan Hajnoczi, kvm, Jakub Kicinski, Paolo Abeni, linux-hyperv,
    	David S. Miller
    
    On Mon, Aug 15, 2022 at 10:56:03AM -0700, Bobby Eshleman wrote:
    > Hey everybody,
    > 
    > This series introduces datagrams, packet scheduling, and sk_buff usage
    > to virtio vsock.
    > 
    > The usage of struct sk_buff benefits users by a) preparing vsock to use
    > other related systems that require sk_buff, such as sockmap and qdisc,
    > b) supporting basic congestion control via sock_alloc_send_skb, and c)
    > reducing copying when delivering packets to TAP.
    > 
    > The socket layer no longer forces errors to be -ENOMEM, as typically
    > userspace expects -EAGAIN when the sk_sndbuf threshold is reached and
    > messages are being sent with option MSG_DONTWAIT.
    > 
    > The datagram work is based off previous patches by Jiang Wang[1].
    > 
    > The introduction of datagrams creates a transport layer fairness issue
    > where datagrams may freely starve streams of queue access. This happens
    > because, unlike streams, datagrams lack the transactions necessary for
    > calculating credits and throttling.
    > 
    > Previous proposals introduce changes to the spec to add an additional
    > virtqueue pair for datagrams[1]. Although this solution works, using
    > Linux's qdisc for packet scheduling leverages already existing systems,
    > avoids the need to change the virtio specification, and gives additional
    > capabilities. The usage of SFQ or fq_codel, for example, may solve the
    > transport layer starvation problem. It is easy to imagine other use
    > cases as well. For example, services of varying importance may be
    > assigned different priorities, and qdisc will apply appropriate
    > priority-based scheduling. By default, the system default pfifo qdisc is
    > used. The qdisc may be bypassed and legacy queuing is resumed by simply
    > setting the virtio-vsock%d network device to state DOWN. This technique
    > still allows vsock to work with zero-configuration.
    > 
    > In summary, this series introduces these major changes to vsock:
    > 
    > - virtio vsock supports datagrams
    > - virtio vsock uses struct sk_buff instead of virtio_vsock_pkt
    >   - Because virtio vsock uses sk_buff, it also uses sock_alloc_send_skb,
    >     which applies the throttling threshold sk_sndbuf.
    > - The vsock socket layer supports returning errors other than -ENOMEM.
    >   - This is used to return -EAGAIN when the sk_sndbuf threshold is
    >     reached.
    > - virtio vsock uses a net_device, through which qdisc may be used.
    >  - qdisc allows scheduling policies to be applied to vsock flows.
    >   - Some qdiscs, like SFQ, may allow vsock to avoid transport layer congestion. That is,
    >     it may avoid datagrams from flooding out stream flows. The benefit
    >     to this is that additional virtqueues are not needed for datagrams.
    >   - The net_device and qdisc is bypassed by simply setting the
    >     net_device state to DOWN.
    > 
    > [1]: https://lore.kernel.org/all/20210914055440.3121004-1-jiang.wang@bytedance.com/
    
    Given this affects the driver/device interface I'd like to
    ask you to please copy virtio-dev mailing list on these patches.
    Subscriber only I'm afraid you will need to subscribe :(
    
    > Bobby Eshleman (5):
    >   vsock: replace virtio_vsock_pkt with sk_buff
    >   vsock: return errors other than -ENOMEM to socket
    >   vsock: add netdev to vhost/virtio vsock
    >   virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit
    >   virtio/vsock: add support for dgram
    > 
    > Jiang Wang (1):
    >   vsock_test: add tests for vsock dgram
    > 
    >  drivers/vhost/vsock.c                   | 238 ++++----
    >  include/linux/virtio_vsock.h            |  73 ++-
    >  include/net/af_vsock.h                  |   2 +
    >  include/uapi/linux/virtio_vsock.h       |   2 +
    >  net/vmw_vsock/af_vsock.c                |  30 +-
    >  net/vmw_vsock/hyperv_transport.c        |   2 +-
    >  net/vmw_vsock/virtio_transport.c        | 237 +++++---
    >  net/vmw_vsock/virtio_transport_common.c | 771 ++++++++++++++++--------
    >  net/vmw_vsock/vmci_transport.c          |   9 +-
    >  net/vmw_vsock/vsock_loopback.c          |  51 +-
    >  tools/testing/vsock/util.c              | 105 ++++
    >  tools/testing/vsock/util.h              |   4 +
    >  tools/testing/vsock/vsock_test.c        | 195 ++++++
    >  13 files changed, 1176 insertions(+), 543 deletions(-)
    > 
    > -- 
    > 2.35.1
    
    _______________________________________________
    Virtualization mailing list
    Virtualization@lists.linux-foundation.org
    https://lists.linuxfoundation.org/mailman/listinfo/virtualization
    
    ^ permalink raw reply	[flat|nested] 23+ messages in thread
  • * [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc
           [not found] <cover.1660362668.git.bobby.eshleman@bytedance.com>
           [not found] ` <d81818b868216c774613dd03641fcfe63cc55a45.1660362668.git.bobby.eshleman@bytedance.com>
      2022-08-15 20:39 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Michael S. Tsirkin
    @ 2022-08-16  7:00 ` Stefano Garzarella
      2022-08-17  6:54 ` Michael S. Tsirkin
                       ` (4 subsequent siblings)
      7 siblings, 0 replies; 23+ messages in thread
    From: Stefano Garzarella @ 2022-08-16  7:00 UTC (permalink / raw)
      To: Bobby Eshleman
      Cc: Wei Liu, Cong Wang, Stephen Hemminger, Bobby Eshleman, Jiang Wang,
    	Michael S. Tsirkin, Dexuan Cui, Haiyang Zhang,
    	linux-kernel@vger.kernel.org,
    	virtualization@lists.linux-foundation.org, Eric Dumazet,
    	netdev@vger.kernel.org, Stefan Hajnoczi, kvm@vger.kernel.org,
    	Jakub Kicinski, Paolo Abeni, linux-hyperv@vger.kernel.org,
    	David S. Miller
    
    
    [-- Attachment #1.1: Type: text/plain, Size: 4360 bytes --]
    
    Hi Bobby,
    I’m on vacation so I’ll review this series when I’m back on 28th.
    
    Please send next versions of this series as RFC until we have at least an
    agreement on the spec changes.
    
    I think will be better to agree on the spec before merge Linux changes.
    
    Thanks,
    Stefano
    
    On Monday, August 15, 2022, Bobby Eshleman <bobby.eshleman@gmail.com> wrote:
    
    > Hey everybody,
    >
    > This series introduces datagrams, packet scheduling, and sk_buff usage
    > to virtio vsock.
    >
    > The usage of struct sk_buff benefits users by a) preparing vsock to use
    > other related systems that require sk_buff, such as sockmap and qdisc,
    > b) supporting basic congestion control via sock_alloc_send_skb, and c)
    > reducing copying when delivering packets to TAP.
    >
    > The socket layer no longer forces errors to be -ENOMEM, as typically
    > userspace expects -EAGAIN when the sk_sndbuf threshold is reached and
    > messages are being sent with option MSG_DONTWAIT.
    >
    > The datagram work is based off previous patches by Jiang Wang[1].
    >
    > The introduction of datagrams creates a transport layer fairness issue
    > where datagrams may freely starve streams of queue access. This happens
    > because, unlike streams, datagrams lack the transactions necessary for
    > calculating credits and throttling.
    >
    > Previous proposals introduce changes to the spec to add an additional
    > virtqueue pair for datagrams[1]. Although this solution works, using
    > Linux's qdisc for packet scheduling leverages already existing systems,
    > avoids the need to change the virtio specification, and gives additional
    > capabilities. The usage of SFQ or fq_codel, for example, may solve the
    > transport layer starvation problem. It is easy to imagine other use
    > cases as well. For example, services of varying importance may be
    > assigned different priorities, and qdisc will apply appropriate
    > priority-based scheduling. By default, the system default pfifo qdisc is
    > used. The qdisc may be bypassed and legacy queuing is resumed by simply
    > setting the virtio-vsock%d network device to state DOWN. This technique
    > still allows vsock to work with zero-configuration.
    >
    > In summary, this series introduces these major changes to vsock:
    >
    > - virtio vsock supports datagrams
    > - virtio vsock uses struct sk_buff instead of virtio_vsock_pkt
    >   - Because virtio vsock uses sk_buff, it also uses sock_alloc_send_skb,
    >     which applies the throttling threshold sk_sndbuf.
    > - The vsock socket layer supports returning errors other than -ENOMEM.
    >   - This is used to return -EAGAIN when the sk_sndbuf threshold is
    >     reached.
    > - virtio vsock uses a net_device, through which qdisc may be used.
    >  - qdisc allows scheduling policies to be applied to vsock flows.
    >   - Some qdiscs, like SFQ, may allow vsock to avoid transport layer
    > congestion. That is,
    >     it may avoid datagrams from flooding out stream flows. The benefit
    >     to this is that additional virtqueues are not needed for datagrams.
    >   - The net_device and qdisc is bypassed by simply setting the
    >     net_device state to DOWN.
    >
    > [1]: https://lore.kernel.org/all/20210914055440.3121004-1-jiang.
    > wang@bytedance.com/
    >
    > Bobby Eshleman (5):
    >   vsock: replace virtio_vsock_pkt with sk_buff
    >   vsock: return errors other than -ENOMEM to socket
    >   vsock: add netdev to vhost/virtio vsock
    >   virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit
    >   virtio/vsock: add support for dgram
    >
    > Jiang Wang (1):
    >   vsock_test: add tests for vsock dgram
    >
    >  drivers/vhost/vsock.c                   | 238 ++++----
    >  include/linux/virtio_vsock.h            |  73 ++-
    >  include/net/af_vsock.h                  |   2 +
    >  include/uapi/linux/virtio_vsock.h       |   2 +
    >  net/vmw_vsock/af_vsock.c                |  30 +-
    >  net/vmw_vsock/hyperv_transport.c        |   2 +-
    >  net/vmw_vsock/virtio_transport.c        | 237 +++++---
    >  net/vmw_vsock/virtio_transport_common.c | 771 ++++++++++++++++--------
    >  net/vmw_vsock/vmci_transport.c          |   9 +-
    >  net/vmw_vsock/vsock_loopback.c          |  51 +-
    >  tools/testing/vsock/util.c              | 105 ++++
    >  tools/testing/vsock/util.h              |   4 +
    >  tools/testing/vsock/vsock_test.c        | 195 ++++++
    >  13 files changed, 1176 insertions(+), 543 deletions(-)
    >
    > --
    > 2.35.1
    >
    >
    
    [-- Attachment #1.2: Type: text/html, Size: 5082 bytes --]
    
    [-- Attachment #2: Type: text/plain, Size: 183 bytes --]
    
    _______________________________________________
    Virtualization mailing list
    Virtualization@lists.linux-foundation.org
    https://lists.linuxfoundation.org/mailman/listinfo/virtualization
    
    ^ permalink raw reply	[flat|nested] 23+ messages in thread
  • * Re: [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc
           [not found] <cover.1660362668.git.bobby.eshleman@bytedance.com>
                       ` (2 preceding siblings ...)
      2022-08-16  7:00 ` Stefano Garzarella
    @ 2022-08-17  6:54 ` Michael S. Tsirkin
           [not found]   ` <YvtmYpMieMFb80qR@bullseye>
      2022-08-18  4:28   ` Jason Wang
           [not found] ` <5a93c5aad99d79f028d349cb7e3c128c65d5d7e2.1660362668.git.bobby.eshleman@bytedance.com>
                       ` (3 subsequent siblings)
      7 siblings, 2 replies; 23+ messages in thread
    From: Michael S. Tsirkin @ 2022-08-17  6:54 UTC (permalink / raw)
      To: Bobby Eshleman
      Cc: Bobby Eshleman, Wei Liu, Cong Wang, Stephen Hemminger,
    	Bobby Eshleman, Jiang Wang, Dexuan Cui, Haiyang Zhang,
    	linux-kernel, virtualization, Eric Dumazet, netdev,
    	Stefan Hajnoczi, kvm, Jakub Kicinski, Paolo Abeni, linux-hyperv,
    	David S. Miller
    
    On Mon, Aug 15, 2022 at 10:56:03AM -0700, Bobby Eshleman wrote:
    > Hey everybody,
    > 
    > This series introduces datagrams, packet scheduling, and sk_buff usage
    > to virtio vsock.
    > 
    > The usage of struct sk_buff benefits users by a) preparing vsock to use
    > other related systems that require sk_buff, such as sockmap and qdisc,
    > b) supporting basic congestion control via sock_alloc_send_skb, and c)
    > reducing copying when delivering packets to TAP.
    > 
    > The socket layer no longer forces errors to be -ENOMEM, as typically
    > userspace expects -EAGAIN when the sk_sndbuf threshold is reached and
    > messages are being sent with option MSG_DONTWAIT.
    > 
    > The datagram work is based off previous patches by Jiang Wang[1].
    > 
    > The introduction of datagrams creates a transport layer fairness issue
    > where datagrams may freely starve streams of queue access. This happens
    > because, unlike streams, datagrams lack the transactions necessary for
    > calculating credits and throttling.
    > 
    > Previous proposals introduce changes to the spec to add an additional
    > virtqueue pair for datagrams[1]. Although this solution works, using
    > Linux's qdisc for packet scheduling leverages already existing systems,
    > avoids the need to change the virtio specification, and gives additional
    > capabilities. The usage of SFQ or fq_codel, for example, may solve the
    > transport layer starvation problem. It is easy to imagine other use
    > cases as well. For example, services of varying importance may be
    > assigned different priorities, and qdisc will apply appropriate
    > priority-based scheduling. By default, the system default pfifo qdisc is
    > used. The qdisc may be bypassed and legacy queuing is resumed by simply
    > setting the virtio-vsock%d network device to state DOWN. This technique
    > still allows vsock to work with zero-configuration.
    
    The basic question to answer then is this: with a net device qdisc
    etc in the picture, how is this different from virtio net then?
    Why do you still want to use vsock?
    
    > In summary, this series introduces these major changes to vsock:
    > 
    > - virtio vsock supports datagrams
    > - virtio vsock uses struct sk_buff instead of virtio_vsock_pkt
    >   - Because virtio vsock uses sk_buff, it also uses sock_alloc_send_skb,
    >     which applies the throttling threshold sk_sndbuf.
    > - The vsock socket layer supports returning errors other than -ENOMEM.
    >   - This is used to return -EAGAIN when the sk_sndbuf threshold is
    >     reached.
    > - virtio vsock uses a net_device, through which qdisc may be used.
    >  - qdisc allows scheduling policies to be applied to vsock flows.
    >   - Some qdiscs, like SFQ, may allow vsock to avoid transport layer congestion. That is,
    >     it may avoid datagrams from flooding out stream flows. The benefit
    >     to this is that additional virtqueues are not needed for datagrams.
    >   - The net_device and qdisc is bypassed by simply setting the
    >     net_device state to DOWN.
    > 
    > [1]: https://lore.kernel.org/all/20210914055440.3121004-1-jiang.wang@bytedance.com/
    > 
    > Bobby Eshleman (5):
    >   vsock: replace virtio_vsock_pkt with sk_buff
    >   vsock: return errors other than -ENOMEM to socket
    >   vsock: add netdev to vhost/virtio vsock
    >   virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit
    >   virtio/vsock: add support for dgram
    > 
    > Jiang Wang (1):
    >   vsock_test: add tests for vsock dgram
    > 
    >  drivers/vhost/vsock.c                   | 238 ++++----
    >  include/linux/virtio_vsock.h            |  73 ++-
    >  include/net/af_vsock.h                  |   2 +
    >  include/uapi/linux/virtio_vsock.h       |   2 +
    >  net/vmw_vsock/af_vsock.c                |  30 +-
    >  net/vmw_vsock/hyperv_transport.c        |   2 +-
    >  net/vmw_vsock/virtio_transport.c        | 237 +++++---
    >  net/vmw_vsock/virtio_transport_common.c | 771 ++++++++++++++++--------
    >  net/vmw_vsock/vmci_transport.c          |   9 +-
    >  net/vmw_vsock/vsock_loopback.c          |  51 +-
    >  tools/testing/vsock/util.c              | 105 ++++
    >  tools/testing/vsock/util.h              |   4 +
    >  tools/testing/vsock/vsock_test.c        | 195 ++++++
    >  13 files changed, 1176 insertions(+), 543 deletions(-)
    > 
    > -- 
    > 2.35.1
    
    _______________________________________________
    Virtualization mailing list
    Virtualization@lists.linux-foundation.org
    https://lists.linuxfoundation.org/mailman/listinfo/virtualization
    
    ^ permalink raw reply	[flat|nested] 23+ messages in thread
  • [parent not found: <5a93c5aad99d79f028d349cb7e3c128c65d5d7e2.1660362668.git.bobby.eshleman@bytedance.com>]
  • * Re: [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc
           [not found] <cover.1660362668.git.bobby.eshleman@bytedance.com>
                       ` (4 preceding siblings ...)
           [not found] ` <5a93c5aad99d79f028d349cb7e3c128c65d5d7e2.1660362668.git.bobby.eshleman@bytedance.com>
    @ 2022-09-06 13:26 ` Stefan Hajnoczi
           [not found]   ` <Yv5PFz1YrSk8jxzY@bullseye>
           [not found] ` <3d1f32c4da81f8a0870e126369ba12bc8c4ad048.1660362668.git.bobby.eshleman@bytedance.com>
      2022-09-26 13:42 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Stefano Garzarella
      7 siblings, 1 reply; 23+ messages in thread
    From: Stefan Hajnoczi @ 2022-09-06 13:26 UTC (permalink / raw)
      To: Bobby Eshleman
      Cc: Bobby Eshleman, Wei Liu, Cong Wang, Stephen Hemminger,
    	Bobby Eshleman, Jiang Wang, Michael S. Tsirkin, Dexuan Cui,
    	Haiyang Zhang, linux-kernel, virtualization, Eric Dumazet,
    	linux-hyperv, kvm, netdev, Jakub Kicinski, Paolo Abeni,
    	David S. Miller
    
    
    [-- Attachment #1.1: Type: text/plain, Size: 552 bytes --]
    
    Hi Bobby,
    If you are attending Linux Foundation conferences in Dublin, Ireland
    next week (Linux Plumbers Conference, Open Source Summit Europe, KVM
    Forum, ContainerCon Europe, CloudOpen Europe, etc) then you could meet
    Stefano Garzarella and others to discuss this patch series.
    
    Using netdev and sk_buff is a big change to vsock. Discussing your
    requirements and the future direction of vsock in person could help.
    
    If you won't be in Dublin, don't worry. You can schedule a video call if
    you feel it would be helpful to discuss these topics.
    
    Stefan
    
    [-- Attachment #1.2: signature.asc --]
    [-- Type: application/pgp-signature, Size: 488 bytes --]
    
    [-- Attachment #2: Type: text/plain, Size: 183 bytes --]
    
    _______________________________________________
    Virtualization mailing list
    Virtualization@lists.linux-foundation.org
    https://lists.linuxfoundation.org/mailman/listinfo/virtualization
    
    ^ permalink raw reply	[flat|nested] 23+ messages in thread
  • [parent not found: <3d1f32c4da81f8a0870e126369ba12bc8c4ad048.1660362668.git.bobby.eshleman@bytedance.com>]
  • * Re: [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc
           [not found] <cover.1660362668.git.bobby.eshleman@bytedance.com>
                       ` (6 preceding siblings ...)
           [not found] ` <3d1f32c4da81f8a0870e126369ba12bc8c4ad048.1660362668.git.bobby.eshleman@bytedance.com>
    @ 2022-09-26 13:42 ` Stefano Garzarella
      2022-09-27 17:45   ` Stefano Garzarella
      7 siblings, 1 reply; 23+ messages in thread
    From: Stefano Garzarella @ 2022-09-26 13:42 UTC (permalink / raw)
      To: Bobby Eshleman
      Cc: Bobby Eshleman, Wei Liu, Cong Wang, Stephen Hemminger,
    	Bobby Eshleman, Jiang Wang, Michael S. Tsirkin, Dexuan Cui,
    	Haiyang Zhang, linux-kernel, virtualization, Eric Dumazet, netdev,
    	Stefan Hajnoczi, kvm, Jakub Kicinski, Paolo Abeni, linux-hyperv,
    	David S. Miller
    
    Hi,
    
    On Mon, Aug 15, 2022 at 10:56:03AM -0700, Bobby Eshleman wrote:
    >Hey everybody,
    >
    >This series introduces datagrams, packet scheduling, and sk_buff usage
    >to virtio vsock.
    
    Just a reminder for those who are interested, tomorrow Sep 27 @ 16:00 
    UTC we will discuss more about the next steps for this series in this 
    room: https://meet.google.com/fxi-vuzr-jjb
    (I'll try to record it and take notes that we will share)
    
    Bobby, thank you so much for working on this! It would be great to solve 
    the fairness issue and support datagram!
    
    I took a look at the series, left some comments in the individual 
    patches, and add some advice here that we could pick up tomorrow:
    - it would be nice to run benchmarks (e.g., iperf-vsock, uperf, etc.) to
       see how much the changes cost (e.g. sk_buff use)
    - we should take care also of other transports (i.e. vmci, hyperv), the 
       uAPI should be as close as possible regardless of the transport
    
    About the use of netdev, it seems the most controversial point and I 
    understand Jakub and Michael's concerns. Tomorrow would be great if you 
    can update us if you have found any way to avoid it, just reusing a 
    packet scheduler somehow.
    It would be great if we could make it available for all transports (I'm 
    not asking you to implement it for all, but to have a generic api that 
    others can use).
    
    But we can talk about that tomorrow!
    Thanks,
    Stefano
    
    >
    >The usage of struct sk_buff benefits users by a) preparing vsock to use
    >other related systems that require sk_buff, such as sockmap and qdisc,
    >b) supporting basic congestion control via sock_alloc_send_skb, and c)
    >reducing copying when delivering packets to TAP.
    >
    >The socket layer no longer forces errors to be -ENOMEM, as typically
    >userspace expects -EAGAIN when the sk_sndbuf threshold )s reached and
    >messages are being sent with option MSG_DONTWAIT.
    >
    >The datagram work is based off previous patches by Jiang Wang[1].
    >
    >The introduction of datagrams creates a transport layer fairness issue
    >where datagrams may freely starve streams of queue access. This happens
    >because, unlike streams, datagrams lack the transactions necessary for
    >calculating credits and throttling.
    >
    >Previous proposals introduce changes to the spec to add an additional
    >virtqueue pair for datagrams[1]. Although this solution works, using
    >Linux's qdisc for packet scheduling leverages already existing systems,
    >avoids the need to change the virtio specification, and gives additional
    >capabilities. The usage of SFQ or fq_codel, for example, may solve the
    >transport layer starvation problem. It is easy to imagine other use
    >cases as well. For example, services of varying importance may be
    >assigned different priorities, and qdisc will apply appropriate
    >priority-based scheduling. By default, the system default pfifo qdisc is
    >used. The qdisc may be bypassed and legacy queuing is resumed by simply
    >setting the virtio-vsock%d network device to state DOWN. This technique
    >still allows vsock to work with zero-configuration.
    >
    >In summary, this series introduces these major changes to vsock:
    >
    >- virtio vsock supports datagrams
    >- virtio vsock uses struct sk_buff instead of virtio_vsock_pkt
    >  - Because virtio vsock uses sk_buff, it also uses sock_alloc_send_skb,
    >    which applies the throttling threshold sk_sndbuf.
    >- The vsock socket layer supports returning errors other than -ENOMEM.
    >  - This is used to return -EAGAIN when the sk_sndbuf threshold is
    >    reached.
    >- virtio vsock uses a net_device, through which qdisc may be used.
    > - qdisc allows scheduling policies to be applied to vsock flows.
    >  - Some qdiscs, like SFQ, may allow vsock to avoid transport layer congestion. That is,
    >    it may avoid datagrams from flooding out stream flows. The benefit
    >    to this is that additional virtqueues are not needed for datagrams.
    >  - The net_device and qdisc is bypassed by simply setting the
    >    net_device state to DOWN.
    >
    >[1]: https://lore.kernel.org/all/20210914055440.3121004-1-jiang.wang@bytedance.com/
    >
    >Bobby Eshleman (5):
    >  vsock: replace virtio_vsock_pkt with sk_buff
    >  vsock: return errors other than -ENOMEM to socket
    >  vsock: add netdev to vhost/virtio vsock
    >  virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit
    >  virtio/vsock: add support for dgram
    >
    >Jiang Wang (1):
    >  vsock_test: add tests for vsock dgram
    >
    > drivers/vhost/vsock.c                   | 238 ++++----
    > include/linux/virtio_vsock.h            |  73 ++-
    > include/net/af_vsock.h                  |   2 +
    > include/uapi/linux/virtio_vsock.h       |   2 +
    > net/vmw_vsock/af_vsock.c                |  30 +-
    > net/vmw_vsock/hyperv_transport.c        |   2 +-
    > net/vmw_vsock/virtio_transport.c        | 237 +++++---
    > net/vmw_vsock/virtio_transport_common.c | 771 ++++++++++++++++--------
    > net/vmw_vsock/vmci_transport.c          |   9 +-
    > net/vmw_vsock/vsock_loopback.c          |  51 +-
    > tools/testing/vsock/util.c              | 105 ++++
    > tools/testing/vsock/util.h              |   4 +
    > tools/testing/vsock/vsock_test.c        | 195 ++++++
    > 13 files changed, 1176 insertions(+), 543 deletions(-)
    >
    >-- 
    >2.35.1
    >
    
    _______________________________________________
    Virtualization mailing list
    Virtualization@lists.linux-foundation.org
    https://lists.linuxfoundation.org/mailman/listinfo/virtualization
    
    ^ permalink raw reply	[flat|nested] 23+ messages in thread

  • end of thread, other threads:[~2022-09-27 17:45 UTC | newest]
    
    Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <cover.1660362668.git.bobby.eshleman@bytedance.com>
         [not found] ` <d81818b868216c774613dd03641fcfe63cc55a45.1660362668.git.bobby.eshleman@bytedance.com>
    2022-08-15 20:01   ` [PATCH 2/6] vsock: return errors other than -ENOMEM to socket kernel test robot
    2022-08-15 23:13   ` kernel test robot
    2022-08-16  2:16   ` kernel test robot
    2022-09-26 13:21   ` Stefano Garzarella
    2022-08-15 20:39 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Michael S. Tsirkin
    2022-08-16  7:00 ` Stefano Garzarella
    2022-08-17  6:54 ` Michael S. Tsirkin
         [not found]   ` <YvtmYpMieMFb80qR@bullseye>
    2022-08-17 17:02     ` Michael S. Tsirkin
         [not found]       ` <Yvt6nxUYMfDrLd/A@bullseye>
    2022-08-17 17:53         ` Michael S. Tsirkin
    2022-08-18  4:28   ` Jason Wang
    2022-09-06  9:00     ` Stefano Garzarella
         [not found] ` <5a93c5aad99d79f028d349cb7e3c128c65d5d7e2.1660362668.git.bobby.eshleman@bytedance.com>
    2022-08-16 16:38   ` [PATCH 3/6] vsock: add netdev to vhost/virtio vsock Michael S. Tsirkin
         [not found]     ` <20220816110717.5422e976@kernel.org>
         [not found]       ` <YvtAktdB09tM0Ykr@bullseye>
         [not found]         ` <20220816160755.7eb11d2e@kernel.org>
         [not found]           ` <YvtVN195TS1xpEN7@bullseye>
         [not found]             ` <20220816181528.5128bc06@kernel.org>
         [not found]               ` <Yvt2f5i5R9NNNYUL@bullseye>
    2022-08-17 17:20                 ` Michael S. Tsirkin
    2022-08-18  4:34                   ` Jason Wang
    2022-09-06 10:58   ` Michael S. Tsirkin
    2022-09-06 13:26 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Stefan Hajnoczi
         [not found]   ` <Yv5PFz1YrSk8jxzY@bullseye>
    2022-09-08  8:30     ` Stefano Garzarella
    2022-09-08 14:36     ` Call to discuss vsock netdev/sk_buff [was Re: [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc] Stefano Garzarella
         [not found]       ` <YxuCVfFcRdWHeeh8@bullseye>
    2022-09-12 18:12         ` Stefano Garzarella
         [not found]           ` <YxvNNd4dNTIUu6Rb@bullseye>
    2022-09-16  3:51             ` Stefano Garzarella
         [not found] ` <3d1f32c4da81f8a0870e126369ba12bc8c4ad048.1660362668.git.bobby.eshleman@bytedance.com>
    2022-09-26 13:17   ` [PATCH 4/6] virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit Stefano Garzarella
    2022-09-26 13:42 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Stefano Garzarella
    2022-09-27 17:45   ` Stefano Garzarella
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).