| From stable-bounces@linux.kernel.org Mon Mar 5 22:14:01 2007 |
| From: NeilBrown <neilb@suse.de> |
| Date: Tue, 6 Mar 2007 17:11:29 +1100 |
| Subject: Avoid using nfsd process pools on SMP machines. |
| To: stable@kernel.org |
| Message-ID: <1070306061129.10623@suse.de> |
| |
| From: NeilBrown <neilb@suse.de> |
| |
| |
| process-pools have real benefits for NUMA, but on SMP |
| machines they only work if network interface interrupts |
| go to all CPUs (via round-robin or multiple nics). This is |
| not always the case, so disable the pools in this case until |
| a better solution is developped. |
| |
| Signed-off-by: Neil Brown <neilb@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| diff .prev/net/sunrpc/svc.c ./net/sunrpc/svc.c |
| --- |
| net/sunrpc/svc.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- linux-2.6.20.1.orig/net/sunrpc/svc.c |
| +++ linux-2.6.20.1/net/sunrpc/svc.c |
| @@ -79,7 +79,11 @@ svc_pool_map_choose_mode(void) |
| * x86_64 kernel on Xeons. In this case we |
| * want to divide the pools on cpu boundaries. |
| */ |
| - return SVC_POOL_PERCPU; |
| + /* actually, unless your IRQs round-robin nicely, |
| + * this turns out to be really bad, so just |
| + * go GLOBAL for now until a better fix can be developped |
| + */ |
| + return SVC_POOL_GLOBAL; |
| } |
| |
| /* default: one global pool */ |