This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Severe performance degradation of writev


2008-07-27  Corinna Vinschen  <corinna@vinschen.de>

* fhandler_socket.cc (fhandler_socket::send_internal): Send never more then 64K bytes at once. For blocking sockets, loop until entire data
       has been sent or an error occurs.
       (fhandler_socket::sendto): Drop code which sends on 64K bytes.
       (fhandler_socket::sendmsg): Ditto.

This commit added workaround for KB823764. but it has brought another performance issue when writev sends <64k of data.
Execute following command shows the problem.
svnrdump dump --incremental http://svn.apache.org/repos/asf/subversion subversion cygwin does split writev request into many WSASendTo call and serf library sets TCP_NODELAY for socket it uses, a WSASendTo call corresponds to a tcp packet. You can see that http header is sent being splitted when you executed above command. Whereas win32 backend of apr library doesn't exhibit such behavior by using send call.
--
Regards.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]