From: NeilBrown <neilb@cse.unsw.edu.au>
Date: Tue, 15 Nov 2005 08:09:10 +0000 (-0800)
Subject: [PATCH] knfsd: make sure nfsd doesn't hog a cpu forever
X-Git-Tag: v2.6.15-rc2~90
X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=1887b93529410633b5529a7c2d304897dbed5b3e;p=linux-2.6-omap-h63xx.git

[PATCH] knfsd: make sure nfsd doesn't hog a cpu forever

Being kernel-threads, nfsd servers don't get pre-empted (depending on
CONFIG).  If there is a steady stream of NFS requests that can be served
from cache, an nfsd thread may hold on to a cpu indefinitely, which isn't
very friendly.

So it is good to have a cond_resched in there (just before looking for a
new request to serve), to make sure we play nice.

Signed-off-by: Neil Brown <neilb@suse.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---

diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index e50e7cf4373..c6a51911e71 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1178,6 +1178,7 @@ svc_recv(struct svc_serv *serv, struct svc_rqst *rqstp, long timeout)
 	arg->tail[0].iov_len = 0;
 
 	try_to_freeze();
+	cond_resched();
 	if (signalled())
 		return -EINTR;