X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 1 Sep 2010 15:10:32 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Cygwin slow on x64 systems Message-ID: <20100901191031.GE15157@ednor.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4C7B9327 DOT 9030204 AT graphtech DOT co DOT il> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4C7B9327.9030204@graphtech.co.il> User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Mon, Aug 30, 2010 at 02:16:55PM +0300, Sagi Ben-Akiva wrote: >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. > >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. I rewrote the signal initialization stuff today and have generated a new snapshot. Please let me know if this works better for you. I haven't actually tried to run a fork per sec. test yet so there may be other lurking problems. http://cygwin.com/snapshots/ cgf -- 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