Re: writev() inefficiency

Alan Cox (
Sun, 26 Jan 1997 21:53:25 +0000 (GMT)

Linux will normally coallesce writev() in accordance with the protocol. It
always does this for UDP, and RAW sockets. For TCP you will see the same
but the data may be split according to Nagle and maximum fragment sizes

Old libc's emulate writev() rather than using the later kernel writev()
and this causes the behaviour you describe. Try again with 2.0.x and