October 3, 2008
TASK_KILLABLE: New process state in Linux
LinuxÃÂ® kernel 2.6.25 introduced a new process state for putting processes to sleep called TASK_KILLABLE, which offers an alternative to the efficient but potentially unkillable TASK_UNINTERRUPTIBLE and the easy-to-awaken but safer TASK_INTERRUPTIBLE. TASK_KILLABLE is the outcome of an issue raised in 2002 about the OpenAFS file system driver waiting for an event interruptibly after blocking all signals. This new sleeping state echoes TASK_UNINTERRUPTIBLE with the ability to respond to fatal signals. In this article, the author sheds light on this area and, using examples from 2.6.26 and an earlier version, 2.6.18, discusses the related changes to the Linux kernel and the new APIs that resulted from these changes.