Speaking of task states, there is now a TASK_NONINTERACTIVE flag which is used to mark non-interactive sleeps. It should be set alongside TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE in cases where the fact that a process is sleeping does not provide any information on whether it is interactive or not. Its initial use is for processes waiting on pipe buffers; the idea is to keep batch tasks using pipes (such as kernel compiles) from looking more interactive than they are. (Toward)