linux-mips
[Top] [All Lists]

RE: Silly 100% CPU behavior on a SIG_IGN-ored SIGBUS.

To: <linux-mips@linux-mips.org>
Subject: RE: Silly 100% CPU behavior on a SIG_IGN-ored SIGBUS.
From: "Kaz Kylheku" <KKylheku@zeugmasystems.com>
Date: Wed, 24 Jun 2009 20:39:51 -0700
In-reply-to: <4A415121.1040602@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
Thread-index: Acn0TqVCE32IUGEPSP6MRih849j9/QA9RYCA
Thread-topic: Silly 100% CPU behavior on a SIG_IGN-ored SIGBUS.
On June 23, 2009 3:03 PM, David Daney [mailto:ddaney@caviumnetworks.com]

> I wonder if it is another instance of:
> 
> http://www.linux-mips.org/git?p=linux.git;a=commitdiff;h=49cf0
> e2d68dd98dbb28eaca0284e8460ab6ad86d

Thanks for digging that up. The patch fixes it for me.
Clearly, it's not just for init. Any process can
ignore signals that shouldn't be ignored.

I'm surprised this has only been discovered
so recently. It's amazing how we sometimes find
things at around the same time.

If I may pontificate now, someone said my little
program was silly. Of course; it's a repro test case! 
Nobody would deliberately block SIGBUS and
then deliberately trigger a bus error.

But this situation happened in a large and complex real
application, leaving some of my developers scratching
their heads, and distracting them from looking for
the bad pointer!

``Hey look, we can break this 100% CPU thread with gdb, but
it always stops on the same location, which is an
indirect load through a register containing a bad pointer!
And it's spinning mostly in the kernel. Hmm!''

I gave them that little program to demonstrate how the
behavior can occur. They are now working out how
SIGBUS came to be ignored, and, of course, the
cause of the bad pointer.

<Prev in Thread] Current Thread [Next in Thread>