Re: [PATCH] writeback: permit through good bdi even when globaldirty exceeded

From: Andrew Morton
Date: Fri Dec 02 2011 - 02:02:44 EST


On Fri, 2 Dec 2011 14:36:03 +0800 Wu Fengguang <fengguang.wu@xxxxxxxxx> wrote:

> --- linux-next.orig/mm/page-writeback.c 2011-12-02 10:16:21.000000000 +0800
> +++ linux-next/mm/page-writeback.c 2011-12-02 14:28:44.000000000 +0800
> @@ -1182,6 +1182,14 @@ pause:
> if (task_ratelimit)
> break;
>
> + /*
> + * In the case of an unresponding NFS server and the NFS dirty
> + * pages exceeds dirty_thresh, give the other good bdi's a pipe
> + * to go through, so that tasks on them still remain responsive.
> + */
> + if (bdi_dirty < 8)
> + break;

What happens if the local disk has nine dirty pages?

Also: please, no more magic numbers. We have too many in there already.

What to do instead? Perhaps arrange for devices which can block in
this fashion to be identified as such in their backing_device and then
prevent the kernel from ever permitting such devices to fully consume
the dirty-page pool.

If someone later comes along and decreases the dirty limits mid-flight,
I guess the same problem occurs. This can perhaps be handled by not
permitting to limit to be set that low at that time.
--
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/