Slow performance Win7/64

jojelino jojelino@gmail.com
Fri Jul 29 04:18:00 GMT 2011


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.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: workaround_sigproc.diff
URL: <http://cygwin.com/pipermail/cygwin/attachments/20110729/0d7e8cb4/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fork.c
URL: <http://cygwin.com/pipermail/cygwin/attachments/20110729/0d7e8cb4/attachment.c>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: no_workaround.log
URL: <http://cygwin.com/pipermail/cygwin/attachments/20110729/0d7e8cb4/attachment.log>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: with_workaround.log
URL: <http://cygwin.com/pipermail/cygwin/attachments/20110729/0d7e8cb4/attachment-0001.log>
-------------- next part --------------
--
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