Messages in this thread | | | Date | Thu, 22 Apr 2021 12:48:13 +0200 | From | Stefano Garzarella <> | Subject | Re: [RFC PATCH v8 00/19] virtio/vsock: introduce SOCK_SEQPACKET support |
| |
On Thu, Apr 22, 2021 at 01:29:54PM +0300, Arseny Krasnov wrote: > >On 22.04.2021 13:02, Stefano Garzarella wrote: >> On Thu, Apr 22, 2021 at 12:40:17PM +0300, Arseny Krasnov wrote: >>> On 22.04.2021 11:46, Stefano Garzarella wrote: >>>> On Wed, Apr 21, 2021 at 06:06:28PM +0300, Arseny Krasnov wrote: >>>>> Thank You, i'll prepare next version. Main question is: does this >>>>> approach(no SEQ_BEGIN, SEQ_END, 'msg_len' and 'msg_id') considered >>>>> good? In this case it will be easier to prepare final version, because >>>>> is smaller and more simple than previous logic. Also patch to spec >>>>> will be smaller. >>>> Yes, it's definitely much better than before. >>>> >>>> The only problem I see is that we add some overhead per fragment >>>> (header). We could solve that with the mergeable buffers that Jiang is >>>> considering for DGRAM. >>> If we are talking about receive, i think, i can reuse merge logic for >> Yep, for TX the guest can potentially enqueue a big buffer. >> Maybe it's still worth keeping a maximum size and fragmenting as we do >> now. >> >>> stream sockets, the only difference is that buffers are mergeable >>> until previous EOR(e.g. previous message) bit is found in rx queue. >>> >> I got a little lost. >> Can you elaborate more? > >I'm talking about 'virtio_transport_recv_enqueue()': it tries to copy > >data of new packet to buffer of tail packet in rx queue. In case of > >SEQPACKET i can reuse it, just adding logic that check EOR bit of > >tail packet.
This might be a good idea. It doesn't save us the transmitted header though, but at least it saves us from queuing it. Even if with SEQPACKET I don't expect small packets, since it's the driver that divides them and I think it does everything to use the maximum available.
Instead the mergeable buffers I was referring to are based on the virito-net feature VIRTIO_NET_F_MRG_RXBUF. Jiang is investigating whether we can reuse them for DGRAM.
Thanks, Stefano
| |