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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html