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. > > Thanks, > Stefano > >