This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Slow performance Win7/64
- From: jojelino <jojelino at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Fri, 29 Jul 2011 13:18:21 +0900
- Subject: Re: Slow performance Win7/64
- References: <loom.20110727T120025-601@post.gmane.org>
On 2011-07-27 ìí 8:30, Heiko Elger wrote:
Why is this problem not solved - cause it is to difficult to find? Yes I know
it's open source and I'm a programmer too - but I'm realy not a programmer
having the knowledge of Cygwin internal details.
Is there a workaround for that problem?
Any hints are welcome.
best regards
Heiko
I believe the attached patch workarounds delayed wait_sig problem.
What this workaround does is, we issue user apc call, and let the os
decide when to call them. and it seems working.
I ran fork-wait testcase with strace. and we can see the applied one
creates wait_sig thread as soon as dll_process_attach event has finished.
207 207 [main] a 4688 heap_init: heap base 0x20000000, heap top
0x20000000
79 286 [main] a 4688 open_shared: name
S-1-5-21-1735317954-1678237343-3838201155-500.1, n 1, shared 0x60FE0000
(wanted 0x60FE0000), h 0x770, *m 6
57 343 [main] a 4688 user_info::create: opening user shared for
'S-1-5-21-1735317954-1678237343-3838201155-500' at 0x60FE0000
56 399 [main] a 4688 user_info::create: user shared version 6467403B
136 535 [main] a 4688 dll_crt0_0: finished dll_crt0_0 initialization
827 1362 [sig] a 4688 wait_sig: entering ReadFile loop, my_readsig
0x750, my_sendsig 0x744
whereas the not applied one has delay to wake wait_sig thread.
269 19965 [main] a 5844 open_shared: name
1720b01b097bf4fc-cons0x250A28.0, n 0, shared 0x60FC0000 (wanted
0x60FC0000), h 0x738, *m 3
3805 23770 [sig] a 5844 wait_sig: entering ReadFile loop, my_readsig
0x764, my_sendsig 0x760
This yielded speed improvement. i ran your testcase and same timestamp
recorded 35. approx 2x speed.
but i can't make sure it doesn't include side-effects. please test it on
your pc. let's hope it would work.
Attachment:
workaround_sigproc.diff
Description: Text document
Attachment:
fork.c
Description: Text document
Attachment:
no_workaround.log
Description: Text document
Attachment:
with_workaround.log
Description: Text document
--
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