long I/O delays when strace is running

Daniel Santos daniel.santos@pobox.com
Fri Apr 21 18:23:00 GMT 2017

On 04/21/2017 04:38 AM, Mark Geisert wrote:
> I can reproduce your issue on a real Win7.64 machine so that removes 
> any possible virtual machine root cause.  I was running 'top -s1' in 
> one window while running your testcase in another window.  Yes, top 
> froze for many seconds at a time, then caught its display up, only to 
> freeze again repeatedly.  It was still frozen for a while after your 
> testcase had ended (!), then caught up. Your mention of pinfo::init 
> and 'ps' along with my usage of 'top' leads me to think this may be 
> somehow related to the /proc filesystem.
> Here's my humble contribution to the discussion:
> ~ time w
>  02:15:52 up 3 days, 20:34,  0 users,  load average: 0.99, 0.62, 0.31
> real    0m0.203s    <-- OK, nice and fast
> user    0m0.077s
> sys     0m0.139s
> ~ time strace -o w.out w
>  02:16:23 up 3 days, 20:34,  0 users,  load average: 0.54, 0.55, 0.29
> real    0m28.487s   <-- but stracing it is much, much slower
> user    0m0.015s
> sys     0m0.000s
> The 'w' command is normally pretty fast.  Running it under strace 
> makes it take an unreasonably long time.  Something seems busted 
> somewhere.  The strace output for this example has many occurrences of 
> ~3.1-second delays that seem to occur as w is accumulating process 
> time information for all processes.
> ..mark

Thanks for the help Mark.  My current suspicion is that the _pinfo isn't 
getting initialized when the process is exec-ed by strace, but I haven't 
proved that.  I added a dump() member function to _pinfo, but it crashes 
and I can't seem to debug that in gdb (it makes a stacktrace file 
instead of letting me debug).  So the cygpid.<n> shared object is there, 
but I'm suspecting that it's either all zeros or just not fully 
initialized -- and this is for the pid of the strace process.  So for 
each strace process, there's a 2-3 second delay when trying to read the 
process list.


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