How does CFQ handle the fairness of process write

From: Yuehai Xu
Date: Sat Jan 22 2011 - 19:49:55 EST


Hi all,

Suppose there are two processes writing lots of data to disk, these
data are written to cache at first, and then, kernel threads might
flush them to disk later. However, from the point of block device, the
kernel thread is just another process that issues write requests. So,
how does CFQ handle the fairness between the two processes? It is
impossible for CFQ to keep the fairness of the two queues for each
process since many write requests are dispatched by kernel thread,
which has another queue in CFQ. And both the requests from two
processes are mixed together in this kernel thread queue.

Is this description correct? In that case, how does CFQ keep the
fairness for two processes since CFQ seems unable to know the exact
process the request belongs to.

I appreciate your help.

Thanks,
Yuehai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/