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/