On Thu, Jan 28, 2016 at 01:51:02PM +0000, David Laight wrote:
> From: Marcelo Ricardo Leitner
> > Sent: 27 January 2016 17:07
> > This patchset is merely a RFC for the moment. There are some
> > controversial points that I'd like to discuss before actually proposing
> > the patches.
> 
> You also need to look at how a 'user' can actually get SCTP to
> merge data chunks in the first place.
> 
> With Nagle disabled (and it probably has to be since the data flow
> is unlikely to be 'command-response' or 'unidirectional bulk')
> it is currently almost impossible to get more than one chunk
> into an ethernet frame.
> 
> Support for MSG_MORE would help.
> 
> Given the current implementation you can get almost the required
> behaviour by turning nagle off and on repeatedly.

That's pretty much expected, I think. Without Nagle, if bandwidth and
cwnd allow, segment will be sent. GSO by itself shouldn't cause a
buffering to protect from that.

If something causes a bottleneck, tx may get queue up.  Like if I do a
stress test in my system, generally receiver side is slower than sender,
so I end up having tx buffers pretty easily. It mimics bandwidth
restrictions.

There is also the case of sending large data chunks, where
sctp_sendmsg() will segment it into smaller chunks already.

But yes, agreed, MSG_MORE is at least a welcomed compliment here,
specially for applications generating a train of chunks. Will put that in
my ToDo here, thanks.

> I did wonder whether the queued data could actually be picked up
> be a Heartbeat chunk that is probing a different remote address
> (which would be bad news).

I don't follow. You mean if a heartbeat may get stuck in queue or if
sending of a heartbeat can end up carrying additional data by accident?

  Marcelo

Reply via email to