| www.delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| X-SWARE-Spam-Status: | No, hits=0.5 required=5.0 tests=AWL,BAYES_00,SARE_RECV_IP_080178 |
| X-Spam-Check-By: | sourceware.org |
| Message-ID: | <4C7B9327.9030204@graphtech.co.il> |
| Date: | Mon, 30 Aug 2010 14:16:55 +0300 |
| From: | Sagi Ben-Akiva <sagi AT graphtech DOT co DOT il> |
| User-Agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.11) Gecko/20100714 SUSE/2.0.6-3.1 SeaMonkey/2.0.6 |
| MIME-Version: | 1.0 |
| To: | cygwin AT cygwin DOT com |
| Subject: | Cygwin slow on x64 systems |
| X-IsSubscribed: | yes |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
Hello,
For the last couple of weeks I'm trying to identify the cause for cygwin
slowdown on x64 machines which was reported by David Morgan about 6
months ago.
I wrote a little bash script which prints the result of 'date -s' to a
file in a loop and then counts the number of times the same second
appears in that file.
I used this script to test all available cygwin revisions snapshots
(which I downloaded from
ftp://www.fruitbat.org/pub/cygwin/circa/index.html) for cygwin version
1.5.19-4.
I was able to identify the exact change which introduce the slowdown.
With my test script for cygwin version 1.5.19-4, snapshot timestamp
1142005204 I'm able to get ~40 lines/second, but with the same version,
snapshot timestamp 1142338816 the result is ~18 lines/second.
Using cvsps I was able to generate a patchset which contains all the
changes between those 2 revisions.
I then applied the changes one by one and built cygwin1.dll for each
change, then I ran my test script again for each cygwin1.dll version and
I found that the change to winsup/cygwin/dcrt0.cc from '2006/03/12
23:57:03' introduce this issue.
The log for this change is :
* dcrt0.cc (dll_crt0_0): Call sigproc_init during init startup.
(_dll_crt0): Don't worry about sync_startup. Just wait for sigthread here.
This change includes 2 different sub-changes :
1. Moving the call to sigproc_init from dll_crt0_1 function to
dll_crt0_0 - which doesn't affect performance.
2. a. Moving the call to wait_for_sigthread from dll_crt0_1 to _dll_crt0
which calls dll_crt0_1.
b. Deleting the call to WaitForSingleObject,
i.e. : "Don't worry about sync_startup"
I can confirm that the 2nd sub-change is the cause for the slowdown.
Any help will be appreciated.
Thank you,
Sagi.
--
Sagi Ben-Akiva - sagi at graphtech dot co dot il
GraphTech Computer Systems
--
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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |