[Crash-utility] crash CPU bound waiting for user response

D. Hugh Redelmeier hugh at mimosa.com
Tue Jul 3 05:04:14 UTC 2007


I am running crash in a shell window of JOVE.  JOVE is an EMACS-subset
editor.

crash isn't really happy.  Here is an example:
    crash> task
    WARNING: terminal is not fully functional
    -  (press RETURN)

==> It does not say in what way the terminal is not fully functional.  That seems like a bug.

==> Worse: while it is awaiting my RETURN, it is burning 100% of the CPU!

Here is what "ps laxgwf" says about the crash process and its child.

F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0  4426  4406  25   0 416812 332764 -     R+   pts/5     80:36              |               |           \_ crash --readnow /usr/lib/debug/lib/modules/2.6.21-1.3228.fc7/vmlinux /var/crash/2007-07-02-13:42/vmcore
0     0  4989  4426  18   0  73976   740 -      S+   pts/5      0:00              |               |               \_ /usr/bin/less -E -X -Ps -- MORE --  forward\: <SPACE>, <ENTER> or j  backward\: b or k  quit\: q

strace of the crash process shows an infinite sequence of:
    wait4(4989, 0x7fffcd9cae90, WNOHANG, NULL) = 0
    wait4(4989, 0x7fffcd9cae90, WNOHANG, NULL) = 0
    wait4(4989, 0x7fffcd9cae90, WNOHANG, NULL) = 0
    wait4(4989, 0x7fffcd9cae90, WNOHANG, NULL) = 0

This is very wasteful.

There are other ways to get into this state.  Other places less is
being used and is waiting.  Probably wherever less is used even if it
isn't waiting.

I just tested: this problem exists when using a normal xterm.




More information about the Crash-utility mailing list