Re: [PATCH] Deadlock during heavy write activity to userspace NFSserver on local NFS mount

From: Avi Kivity
Date: Tue Jul 27 2004 - 15:27:08 EST


Pavel Machek wrote:

On heavy write activity, allocators wait synchronously for kswapd to
free some memory. But if kswapd is freeing memory via a userspace NFS
server, that server could be waiting for kswapd, and the system seizes
instantly.

This patch (against RHEL 2.4.21-15EL, but should apply either literally
or conceptually to other kernels) allows a process to declare itself as
kswapd's little helper, and thus will not have to wait on kswapd.



Ok, but what if its memory runs out, anyway?



Tough. What if kswapd's memory runs out?

A more complete solution would be to assign memory reserve levels below which a process starts allocating synchronously. For example, normal processes must have >20MB to make forward progress, kswapd wants >15MB and the NFS server needs >10MB. Some way would be needed to express the dependencies.

I think more and more people will hit this problem as filesystems become more complex due to clustering, and migrate to userspace where it can be more easily managed.

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