Messages in this thread | | | Date | Tue, 22 Sep 2009 19:09:15 -0700 | From | Andrew Morton <> | Subject | Re: regression in page writeback |
| |
On Wed, 23 Sep 2009 10:01:04 +0800 Wu Fengguang <fengguang.wu@intel.com> 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.
| |