On Wed, Sep 07, 2005 at 10:14:16AM +0100, Maciej W. Rozycki wrote:
> > > So, the process can not be kill by SIGKILL. In 2.6.12, 'sigkill
> > > priority fix' was applied to __dequeue_signal(), but it does not help
> > > while the SIGTRAP is queued to tsk->pending but SIGKILL (by kill
> > > command) is queued to tsk->signal->shared_pending.
> > The behaviour of not advancing the EPC beyond the faulting instruction is
> > part of the problem - but I believe that was the usual behaviour for
> > MIPS UNIXoid operating systems.
> Well, SIGKILL should always work and frankly I can't see a reason to
> return back to user space in the affected context in the first place.
> What's left in EPC shouldn't matter.
I said it's part of the problem - not that it should be changed. The
behaviour as far as I can say is also standard for MIPS unixoid operating
systems. That said, I definately prefer the approach of Atushi's suggested
fix #2. The other question is why we try to continue if delivering a
signal failed and we already know that repeated attempts would fail again.