The patch titled knfsd: handle non-contiguous cpu and node numbers has been added to the -mm tree. Its filename is knfsd-make-rpc-threads-pools-numa-aware-fix.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: knfsd: handle non-contiguous cpu and node numbers From: Greg Banks <gnb@xxxxxxxxxxxxxxxxx> knfsd: when allocating per-cpu or per-node rpc thread pools, handle the case of noncontiguous cpu or node numbers. Tested: Machine ARCH SMP NUMA SUNRPC nodes cpus hpni hppi pools(mode) ------- ---- --- ---- ------ ----- ---- ---- ---- ------------ 4 cpu Xeon SMP x86_64 y y y 1 4 31 7 4 (percpu) 4 cpu Xeon SMP x86_64 y y m 1 4 31 7 4 (percpu) 4 cpu Xeon SMP x86_64 y n y 0 4 0 7 4 (percpu) 4 cpu Xeon SMP x86_64 y n m 0 4 0 7 4 (percpu) 4 cpu Xeon SMP x86_64 n n y 0 1 0 0 1 (global) 4 cpu Xeon SMP x86_64 n n m 0 1 0 0 1 (global) 4 cpu (2 node) Itanium NUMA ia64 y y m 2 4 1023 3 2 (pernode) 2 cpu (1 node) Itanium NUMA ia64 y y m 1 2 1023 1 1 (global) * number of nodes and cpus from /sys/devices/system/ * hpni = value of highest_possible_node_id() * hppi = value of highest_possible_processor_id() Signed-off-by: Greg Banks <gnb@xxxxxxxxxxxxxxxxx> Cc: Neil Brown <neilb@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- diff -puN net/sunrpc/svc.c~knfsd-make-rpc-threads-pools-numa-aware-fix net/sunrpc/svc.c --- a/net/sunrpc/svc.c~knfsd-make-rpc-threads-pools-numa-aware-fix +++ a/net/sunrpc/svc.c @@ -116,7 +116,7 @@ fail: static int svc_pool_map_init_percpu(struct svc_pool_map *m) { - unsigned int maxpools = num_possible_cpus(); + unsigned int maxpools = highest_possible_processor_id()+1; unsigned int pidx = 0; unsigned int cpu; int err; @@ -144,7 +144,7 @@ svc_pool_map_init_percpu(struct svc_pool static int svc_pool_map_init_pernode(struct svc_pool_map *m) { - unsigned int maxpools = num_possible_nodes(); + unsigned int maxpools = highest_possible_node_id()+1; unsigned int pidx = 0; unsigned int node; int err; _ Patches currently in -mm which might be from gnb@xxxxxxxxxxxxxxxxx are cpumask-add-highest_possible_node_id.patch cpumask-export-cpu_online_map-and-cpu_possible_map.patch cpumask-export-node_to_cpu_mask-consistently.patch knfsd-knfsd-add-some-missing-newlines-in-printks.patch knfsd-knfsd-remove-an-unused-variable-from-e_show.patch knfsd-knfsd-remove-an-unused-variable-from-auth_unix_lookup.patch knfsd-use-seq_start_token-instead-of-hardcoded-magic-void1.patch knfsd-move-tempsock-aging-to-a-timer.patch knfsd-move-tempsock-aging-to-a-timer-tidy.patch knfsd-convert-sk_inuse-to-atomic_t.patch knfsd-use-new-lock-for-svc_sock-deferred-list.patch knfsd-convert-sk_reserved-to-atomic_t.patch knfsd-test-and-set-sk_busy-atomically.patch knfsd-split-svc_serv-into-pools.patch knfsd-add-svc_get.patch knfsd-add-svc_set_num_threads.patch knfsd-use-svc_set_num_threads-to-manage-threads-in-knfsd.patch knfsd-make-rpc-threads-pools-numa-aware.patch knfsd-make-rpc-threads-pools-numa-aware-fix.patch knfsd-allow-admin-to-set-nthreads-per-node.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html