Subject: Re: pools, interrupt context, kpsignal2
To: None <erh@nimenees.com>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 11/07/2006 08:20:17
> 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.

YAMAMOTO Takashi