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

Dave Anderson anderson at redhat.com
Tue Jul 3 13:23:46 UTC 2007


D. Hugh Redelmeier wrote:
> 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.

Sorry, but I have no idea where that WARNING message is coming from,
i.e., it's not coming from the crash/gdb code base, nor does the
string "functional" show up in any of the external libraries.  There
is a crash function that prints "WARNING:" before a passed-in message,
but no instances of it issue that "functional" message.  And the
"(press RETURN)" is most certainly not associated with the crash/gdb
code base.

So I don't know what the "It" is.

> 
> ==> 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.

Yeah, I have seen this on occasions, but I have never been able
to reproduce it on demand.  There was a patch suggestion a while ago,
but I deferred it until I could reliably reproduce it for testing
before taking it in.

Dave





More information about the Crash-utility mailing list