[Top] [All Lists]

Re: unkillable process due to setup_frame() failure

To: Atsushi Nemoto <>
Subject: Re: unkillable process due to setup_frame() failure
From: Ralf Baechle <>
Date: Tue, 6 Sep 2005 19:41:19 +0100
In-reply-to: <>
Original-recipient: rfc822;
References: <>
User-agent: Mutt/
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.


<Prev in Thread] Current Thread [Next in Thread>