Re: RFC - how to balance Dirty+Writeback in the face of slowwriteback.

From: Andrew Morton
Date: Thu Aug 17 2006 - 11:11:55 EST


On Thu, 17 Aug 2006 08:36:19 -0400
Trond Myklebust <trond.myklebust@xxxxxxxxxx> wrote:

> On Wed, 2006-08-16 at 23:14 -0700, Andrew Morton wrote:
> > btw, one thing which afaik NFS _still_ doesn't do is to wake up processes
> > which are stuck in blk_congestion_wait() when NFS has retired a bunch of
> > writes. It should do so, otherwise NFS write-intensive workloads might end
> > up sleeping for too long. I guess the amount of buffering and hysteresis
> > we have in there has thus far prevented any problems from being observed.
>
> Are we to understand it that you consider blk_congestion_wait() to be an
> official API, and not just another block layer hack inside the VM?
>
> 'cos currently the only tools for waking up processes in
> blk_congestion_wait() are the two routines:
>
> static void clear_queue_congested(request_queue_t *q, int rw)
> and
> static void set_queue_congested(request_queue_t *q, int rw)
>
> in block/ll_rw_blk.c. Hardly a model of well thought out code...
>

We've been over this before...

Take a look at blk_congestion_wait(). It doesn't know about request
queues. We'd need a new

void writeback_congestion_end(int rw)
{
wake_up(congestion_wqh[rw]);
}

or similar.
-
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/