Re: [PATCH v2 1/2] udp: UDP socket send queue repair

From: Eric Dumazet
Date: Thu Aug 12 2021 - 11:51:34 EST




On 8/12/21 3:46 PM, Bui Quang Minh wrote:
>
>
> On 8/11/2021 11:14 PM, Eric Dumazet wrote:
>>
>>
>> On 8/11/21 5:45 PM, Bui Quang Minh wrote:
>>> In this patch, I implement UDP_REPAIR sockoption and a new path in
>>> udp_recvmsg for dumping the corked packet in UDP socket's send queue.
>>>
>>> A userspace program can use recvmsg syscall to get the packet's data and
>>> the msg_name information of the packet. Currently, other related
>>> information in inet_cork that are set in cmsg are not dumped.
>>>
>>> While working on this, I was aware of Lese Doru Calin's patch and got some
>>> ideas from it.
>>
>>
>> What is the use case for this feature, adding a test in UDP fast path ?
>
> This feature is used to help CRIU to dump CORKed UDP packet in send queue. I'm sorry for being not aware of the performance perspective here.

UDP is not reliable.

I find a bit strange we add so many lines of code
for a feature trying very hard to to drop _one_ packet.

I think a much better changelog would be welcomed.

>
>> IMO, TCP_REPAIR hijacking standard system calls was a design error,
>> we should have added new system calls.
>
> You are right that adding new system calls is a better approach. What do you think about adding a new option in getsockopt approach?
>
> Thanks,
> Quang Minh.