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