aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2011-07-28 14:04:09 -0400
committerJ. Bruce Fields <bfields@redhat.com>2011-08-19 13:25:36 -0400
commit11fd165c68b73434ca1273e21f21db5eecc90926 (patch)
tree75c3e2d97b2d59ebaaa4571df2ead80a4c4f35a5 /fs
parentc1f24ef4ed46f58ea5e524a2364c93b6847fb164 (diff)
sunrpc: use better NUMA affinities
Use NUMA aware allocations to reduce latencies and increase throughput. sunrpc kthreads can use kthread_create_on_node() if pool_mode is "percpu" or "pernode", and svc_prepare_thread()/svc_init_buffer() can also take into account NUMA node affinity for memory allocations. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> CC: "J. Bruce Fields" <bfields@fieldses.org> CC: Neil Brown <neilb@suse.de> CC: David Miller <davem@davemloft.net> Reviewed-by: Greg Banks <gnb@fastmail.fm> [bfields@redhat.com: fix up caller nfs41_callback_up] Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/lockd/svc.c2
-rw-r--r--fs/nfs/callback.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index abfff9d7979d..c061b9aa7ddb 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -282,7 +282,7 @@ int lockd_up(void)
282 /* 282 /*
283 * Create the kernel thread and wait for it to start. 283 * Create the kernel thread and wait for it to start.
284 */ 284 */
285 nlmsvc_rqst = svc_prepare_thread(serv, &serv->sv_pools[0]); 285 nlmsvc_rqst = svc_prepare_thread(serv, &serv->sv_pools[0], NUMA_NO_NODE);
286 if (IS_ERR(nlmsvc_rqst)) { 286 if (IS_ERR(nlmsvc_rqst)) {
287 error = PTR_ERR(nlmsvc_rqst); 287 error = PTR_ERR(nlmsvc_rqst);
288 nlmsvc_rqst = NULL; 288 nlmsvc_rqst = NULL;
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
index e3d294269058..516f3375e067 100644
--- a/fs/nfs/callback.c
+++ b/fs/nfs/callback.c
@@ -125,7 +125,7 @@ nfs4_callback_up(struct svc_serv *serv)
125 else 125 else
126 goto out_err; 126 goto out_err;
127 127
128 return svc_prepare_thread(serv, &serv->sv_pools[0]); 128 return svc_prepare_thread(serv, &serv->sv_pools[0], NUMA_NO_NODE);
129 129
130out_err: 130out_err:
131 if (ret == 0) 131 if (ret == 0)
@@ -199,7 +199,7 @@ nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt)
199 INIT_LIST_HEAD(&serv->sv_cb_list); 199 INIT_LIST_HEAD(&serv->sv_cb_list);
200 spin_lock_init(&serv->sv_cb_lock); 200 spin_lock_init(&serv->sv_cb_lock);
201 init_waitqueue_head(&serv->sv_cb_waitq); 201 init_waitqueue_head(&serv->sv_cb_waitq);
202 rqstp = svc_prepare_thread(serv, &serv->sv_pools[0]); 202 rqstp = svc_prepare_thread(serv, &serv->sv_pools[0], NUMA_NO_NODE);
203 if (IS_ERR(rqstp)) { 203 if (IS_ERR(rqstp)) {
204 svc_xprt_put(serv->sv_bc_xprt); 204 svc_xprt_put(serv->sv_bc_xprt);
205 serv->sv_bc_xprt = NULL; 205 serv->sv_bc_xprt = NULL;