The writev() and readv() routines are supposed to pass a scatter-gather like array directly to the TCP/IP stack to allow large data transfers to be handled efficiently to memory. The way that the CRTL has implemented them, they are buffered so that they are actually much slower than the normal I/O. Properly implementing readv()/writev() will require changes in the TCPIP programs in addition to the CRTL. Impact of this on real programs is unknown, but it showed up in the performance of a test iSCSI server.
Log in to post a comment.