This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Cygwin slow on x64 systems
- From: Sagi Ben-Akiva <sagi at graphtech dot co dot il>
- To: cygwin at cygwin dot com
- Date: Mon, 30 Aug 2010 14:16:55 +0300
- Subject: Cygwin slow on x64 systems
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