Thread (9 messages) 9 messages, 4 authors, 2012-01-22
  • (off-list ancestor, not in this archive)
  • SIGKILL · Mulyadi Santosa <hidden> · 2012-01-19
  • SIGKILL · Darshan Ghumare <hidden> · 2012-01-19
  • SIGKILL · Mulyadi Santosa <hidden> · 2012-01-19
  • SIGKILL · Dave Hylands <hidden> · 2012-01-19
  • SIGKILL · Darshan Ghumare <hidden> · 2012-01-20
  • SIGKILL · Dave Hylands <hidden> · 2012-01-20
  • SIGKILL · Darshan Ghumare <hidden> · 2012-01-22
  • SIGKILL · Dave Hylands <hidden> · 2012-01-22
  • SIGKILL · Anand Moon <hidden> · 2012-01-19

SIGKILL

From: Dave Hylands <hidden>
Date: 2012-01-19 17:24:54

Hi,
On Thu, Jan 19, 2012 at 7:26 AM, Mulyadi Santosa
[off-list ref] wrote:
Hi again :)

On Thu, Jan 19, 2012 at 16:03, Darshan Ghumare
[off-list ref] wrote:
quoted
What if, there is one process which is in?middle?of a syscall which has
infinite loop in it received SIGKILL & there are no other processes in the
system?
infinite loop such as "for(;;)" ? well as long as it doesn't disable
or masked out the timer interrupt, sooner or later timer interrupt
will kick in. It then followed by the usual tick handler. Inside it,
IIRC, will provoke the current running process to check queued signal
and handle it.
If the process was in an infinite loop in user space, what Mulyadi
says is true. If it were a real-time process in an infinite loop then
it might very well be unkillable (unless there is a higher priority
thread which can do the killing).

My understanding is that in kernel space signals only get handled when
you run into code which specifically deals with signals. All of the
syscalls are wrapped with such code. So, if you're in an infinite loop
in kernel space, then you're in essentially the same situation as
doing a non-interruptible down which never completes.

If the kernel were to kill the process just because a preemption
occurred (while in kernel space) then you would very often be killing
processes which are currently holding a semaphore or something and
leaving the kernel in a potentially unstable state.

There is always at least one runnable thread, called the idle thread.
There is an idle thread for each CPU.

--
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help