Use iovecs for recvmsg() (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 2 Sep 2016 17:37:11 +0000 (13:37 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 6 Sep 2016 13:26:23 +0000 (09:26 -0400)
commit1e816305631ac3856bd4816a9cd54272760712b5
treeb38a93aebf3ac104ead85fd21201474617bad575
parentb188948fb203d79e67b126affe04cbcd24af30b1
Use iovecs for recvmsg() (XCC)

recvmsg() takes an iovec.  The old behavior was legal, since we can just
read into the first vector.  However, if we have a decent readv, then this
layer gets in the way of utilizing readv's performance benefits.

This change is less important for recvmsg() than it will be for sendmsg(),
where the user might have provided more than one iovec.

Using readv() also helps with UDP, since we can just prepend an iovec for
the UDP headers, which is much nicer than the old malloc and memcpy style.

Rebuild glibc.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/recvfrom.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/recvmsg.c