Re: regression in page writeback

From: Andrew Morton
Date: Tue Sep 22 2009 - 22:09:59 EST


On Wed, 23 Sep 2009 10:01:04 +0800 Wu Fengguang <fengguang.wu@xxxxxxxxx> wrote:

> > If there's still outstanding dirty data for any of those queues, both
> > wb_kupdate() and background_writeout() will take a teeny sleep and then
> > will re-poll the queues.
> >
> > Did that logic get broken?
>
> No, but the "teeny sleep" is normally much smaller. When io queue is
> not congested, every io completion event will wakeup the congestion
> waiters. Also A's event could wake up B's waiters.
>
> __freed_request() always calls blk_clear_queue_congested() if under
> congestion threshold which in turn wakes up congestion waiters:
>
> if (rl->count[sync] < queue_congestion_off_threshold(q))
> blk_clear_queue_congested(q, sync);
>

Yes. Have any problems been demonstrated due to that?

And what's _sufficiently_ wrong with that to justify adding potentially
thousands of kernel threads? It was always a design objective to avoid
doing that.

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