So, having kernel code which does: set_current_state(TASK_INTERRUPTIBLE); schedule(); causes blocking, as expected, and /proc/stat shows increasing idle task time and non increasing io wait time. Fine. Changing schedule() to io_schedule(), time now seems to be split between idle task and io_wait time. Question, why does the system impute any running time to io_wait time? The task that got blocked is presumably not doing anything and just sitting there inactive until it gets woken up, so I would expect just idle time to be increasing. I know its trying to account for io_wait time, but how does it know how many jiffies to be adding to io_wait time? Googling on io_wait and/or io_schedule are not turning up much. So, I'm obviously not understanding things here. Any input? -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ