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
> USER TTY LOGIN@ IDLE JCPU PCPU WHAT
>
> 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
> USER TTY LOGIN@ IDLE JCPU PCPU WHAT
>
> 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.
Daniel
--
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