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