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 [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to