Re: unkillable process due to setup_frame() failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 07, 2005 at 01:42:34AM +0900, Atsushi Nemoto wrote:

> 1.  The "break" instruction raises a exception.
> 2.  The exception handler queues SIGTRAP(5).
> 3.  dequeue_signal() dequeue a signal with LOWEST number (i.e. SIGTRAP).
> 4.  setup_frame() fails due to bad stack pointer and queues SIGSEGV(11).
> 5.  returns to user process (pc unchanged).
> 6.  goto 1. (forever)
> 
> 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.

  Ralf


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux