Home

TASKUNINTERRUPTIBLE

TASK_UNINTERRUPTIBLE, often referred to as the TASK_UNINTERRUPTIBLE state (commonly shown as the D state in user space), is a Linux kernel task state describing a process that is sleeping and cannot be interrupted by signals. This state is entered when a task must wait for a non‑interruptible condition, such as completion of an I/O operation or a driver/resource lock. While in this state, the task is not scheduled to run until the awaited condition becomes true and the kernel explicitly wakes it up.

A key characteristic of TASK_UNINTERRUPTIBLE is that signals do not wake the task. The only way for

In user-space visibility, processes in an uninterruptible sleep are shown with a D in the process status,

Common causes include waiting on disk I/O, memory-mapped I/O, or certain hardware drivers that hold a lock

Related concepts include TASK_INTERRUPTIBLE and TASK_RUNNING. Diagnosing D-state conditions involves examining I/O wait times, disk and

the
process
to
resume
is
when
the
underlying
event
completes
or
when
the
kernel
performs
a
wake_up()
path.
Because
signals
cannot
interrupt
it,
a
task
in
this
state
can
cause
system
latency
if
the
awaited
condition
hangs
or
fails
to
complete.
for
example
State:
D
(uninterruptible
sleep)
in
/proc/[pid]/status.
This
contrasts
with
TASK_INTERRUPTIBLE,
where
a
sleeping
task
can
be
awakened
by
signals
and
is
marked
with
an
S
state.
or
await
hardware
readiness.
Prolonged
D-state
often
points
to
underlying
I/O
or
driver
issues
rather
than
to
ordinary
scheduling
delays.
device
health,
and
kernel
driver
behavior,
using
tools
like
ps,
top,
iostat,
and
kernel
logs
to
identify
the
source
of
the
uninterruptible
wait.