Cygwin slow on x64 systems

Edward Lam edward@sidefx.com
Mon Aug 30 16:53:00 GMT 2010


On 8/30/2010 7:16 AM, Sagi Ben-Akiva wrote:
> 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.

Just curious, has the performance characteristics of your test changed 
with the lastest cygwin snapshot? The affected code has moved somewhat 
since revision 1.288.

I wonder if we can move the call to wait_for_sigthread() further down in 
dll_crt0_0() to improve performance via concurrency. Perhaps as far down 
as right before we assign cygwin_finished_initializing to true?

At first brush, it looks like the slowdown is caused by the slow thread 
startup. I wouldn't expect that Win64 thread start up to be any slower 
than Win32 but perhaps this is due to Wow64. MSDN [1] does document that 
there is some (small) extra thread allocation when on WOW64. Perhaps 
some independent testing in this regard might be helpful.

Regards,
-Edward

1. http://msdn.microsoft.com/en-us/library/aa384219%28VS.85%29.aspx

--
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



More information about the Cygwin mailing list