Subject: Re: pools, interrupt context, kpsignal2
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: Eric Haszlakiewicz <erh@nimenees.com>
List: tech-kern
Date: 11/11/2006 22:58:36
On Tue, Nov 07, 2006 at 08:20:17AM +0900, YAMAMOTO Takashi wrote:
> > I'm wondering if sending a signal to a process is supposed to work from
> > a interrupt handler.  I got a fairly reasonable looking traceback from
> > my machine when it hangs, and it looks like it's getting stuck in a pool_get
> > call in kpsignal2().  This happens often when I'm running a linux-emul'd
> > firefox binary.  I've got a USB mouse and keyboard plugged in.  Looking
> > at the traceback, that seems somewhat relevant:
> 
> please file a PR.
> 
> siginfo code has an assumption that splsoftclock is enough to
> block relevant interrupts.  it's wrong.
> even worse, after recent changes, ksiginfo_t is allocated even
> if !SA_SIGINFO.  it makes the problem appear even when siginfo is not
> actually used.
> 
> a slightly different but relevant problem: for virtual/profile clocks,
> kpsignal is called by hardclock via itimerfire.  ie. called above splvm.
> i'm not sure if there's an easy way to fix it.

Well, I didn't get around to filing the PR, but it looks like you fixed
it.  Thanks!  My system is much more stable now.

eric