Thread (5 messages) flat view 5 messages, 3 authors, 2011-08-10

difference between io_schedule() and schedule()

From: j.neuschaefer@gmx.net (Jonathan Neuschäfer)
Date: 2011-08-08 14:55:35

On Sat, Aug 06, 2011 at 12:31:21PM +0530, Rajat Sharma wrote:
Hi All,

What is the difference between io_schedule() and schedule(), is
io_schedule() more restrictive to shedule only I/O bound processes or
it just favours I/O bound processes. Any documentation link would be
great help.
Have you even looked at the source code?
From kernel/sched.c +5721:
/*
 * This task is about to go to sleep on IO. Increment rq->nr_iowait so
 * that process accounting knows that this is a task in IO wait state.
 */
void __sched io_schedule(void)
{
	struct rq *rq = raw_rq();

	delayacct_blkio_start();
	atomic_inc(&rq->nr_iowait);
	blk_flush_plug(current);
	current->in_iowait = 1;
	schedule();
	current->in_iowait = 0;
	atomic_dec(&rq->nr_iowait);
	delayacct_blkio_end();
}
EXPORT_SYMBOL(io_schedule);

HTH,
	Jonathan Neusch?fer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help