[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250703124453.390f5908@pumpkin>
Date: Thu, 3 Jul 2025 12:44:53 +0100
From: David Laight <david.laight.linux@...il.com>
To: Paolo Abeni <pabeni@...hat.com>
Cc: Feng Yang <yangfeng59949@....com>, davem@...emloft.net,
edumazet@...gle.com, kuba@...nel.org, horms@...nel.org, willemb@...gle.com,
almasrymina@...gle.com, kerneljasonxing@...il.com, ebiggers@...gle.com,
asml.silence@...il.com, aleksander.lobakin@...el.com, stfomichev@...il.com,
yangfeng@...inos.cn, netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] skbuff: Add MSG_MORE flag to optimize large packet
transmission
On Thu, 3 Jul 2025 10:48:40 +0200
Paolo Abeni <pabeni@...hat.com> wrote:
> On 6/30/25 9:10 AM, Feng Yang wrote:
> > From: Feng Yang <yangfeng@...inos.cn>
> >
> > The "MSG_MORE" flag is added to improve the transmission performance of large packets.
> > The improvement is more significant for TCP, while there is a slight enhancement for UDP.
>
> I'm sorry for the conflicting input, but i fear we can't do this for
> UDP: unconditionally changing the wire packet layout may break the
> application, and or at very least incur in unexpected fragmentation issues.
Does the code currently work for UDP?
I'd have thought the skb being sent was an entire datagram.
But each semdmsg() is going to send a separate datagram.
IIRC for UDP MSG_MORE indicates that the next send() will be
part of the same datagram - so the actual send can't be done
until the final fragment (without MSG_MORE) is sent.
None of the versions is right for SCTP.
The skb being sent needs to be processed as a single entity.
Here MSG_MORE tells the stack that more messages follow and can be put
into a single ethernet frame - but they are separate protocol messages.
OTOH I've not looked at where this code is called from.
In particular, when it would be called with non-linear skb.
David
Powered by blists - more mailing lists