Você pode ver a pilha do processo:
cat /proc/<process pid>/stack
que lhe dará informações sobre o que estava fazendo quando acabou em D-state.
echo w > /proc/sysrq-trigger; dmesg
dirá ao kernel para relatar todos os rastreios de pilha para os processos do estado D no buffer do dmesg.
Os processos no estado D não podem ser eliminados. Há situações em que o processo permanece no estado D por muito tempo, mas ocasionalmente termina a E / S e é interrompível por um curto período de tempo e, em seguida, volta para a mesma atividade de E / S e acaba no estado D novamente. Então com
while (true); do kill -9 PID; done
há uma pequena chance de entregar o sinal KILL enquanto o processo é interrompível.