Hi!
On Sun, Apr 05, 2015 at 03:46:16PM +0200, Harald Welte wrote:
Hi Holger, Pablo, Ciaby,
On Sat, Apr 04, 2015 at 09:05:20AM +0200, Holger Hans Peter Freyther wrote:
* Linux/TCP will run nagle to combine these
messages
we could easily disable nagle if that's what we want to avoid
latencies [see below]
I wonder if there is a better way? For reading we
could read
until -EWOULDBLOCK but then this might not be too fair for
the other parts of the software.
In terms of msgb reading, I think a fixed upper limit might make sense,
i.e. read up to [configurable] N messages in one BSC_FD_READ callback.
I think the same, batching seems like the way to go to me.
[...]
Is there a TCP
mode where a "write" either fully succeeds or fails
with -ENOSPC or such?
Not to my knowledge. The proper answer would probably to use DCCP or
SCTP or any other protocol that can provide reliable delivery of packets
(possibly with ordering guarantees) and not abuse a stream protocol
like TCP. This would of course break IPA compatibility... but it might
be an interesting experiment to compare different L4 protocol
performance against TCP for the given use case.
Looking at the current state of art of the Linux stack, TCP is very
well tuned and there are more people looking into it than those other
protocols.