From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30150 invoked by alias); 6 Jul 2014 22:28:33 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 29917 invoked by uid 89); 6 Jul 2014 22:28:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,FSL_HELO_BARE_IP_2,RCVD_IN_DNSWL_NONE,RCVD_NUMERIC_HELO,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-HELO: plane.gmane.org Received: from plane.gmane.org (HELO plane.gmane.org) (80.91.229.3) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Sun, 06 Jul 2014 22:28:31 +0000 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1X3uv4-00005E-AX for cygwin@cygwin.com; Mon, 07 Jul 2014 00:28:26 +0200 Received: from 118.45.149.147 ([118.45.149.147]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 07 Jul 2014 00:28:26 +0200 Received: from jojelino by 118.45.149.147 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 07 Jul 2014 00:28:26 +0200 To: cygwin@cygwin.com From: jojelino Subject: Severe performance degradation of writev Date: Sun, 06 Jul 2014 22:28:00 -0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-07/txt/msg00069.txt.bz2 2008-07-27 Corinna Vinschen * 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