Re: CFQ: async queue blocks the whole system

From: Shaohua Li
Date: Sun Jun 12 2011 - 21:04:22 EST


On Fri, 2011-06-10 at 17:20 +0800, Vivek Goyal wrote:
> On Fri, Jun 10, 2011 at 11:02:11AM +0800, Tao Ma wrote:
>
> [..]
> > > I don't think we can give a deadline for async request, because we
> > > still want to give sync high priority. We can give async some slices,
> > > so for a workload of small number of async requests and large number
> > > sync requests, we don't starve async too much. But for a workload with
> > > large number of sync/async requests, async will be starved for sure
> > > and we can't solve this in cfq.
> > OK, so if you guys thinks a 500 seconds wait is good for an async write
> > to complete, fine, then we have to switch to deadline.
>
> I don't think that starving WRITES completely is a good idea. Especially
> given the fact that you were not able to dispatch WRITES for 500 seconds.
> This needs fixing.
>
> Its not about giving hard deadline to WRITES, but making sure we don't
> starve them completely and they also make some progress.
Sure, I have no objection to avoid write starvation for a light write
workload. We definitely should do something for such workload. Your
patch is a good start.
But for a heavy write workload (for example, Ma's test), CFQ never can
completely avoid write starvation. In such workload, write queue has
only slow progress to handle requests.

Thanks,
Shaohua

--
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/