This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Slow performance Win7/64


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]