aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chuck Lever <chuck.lever@oracle.com> 2023-05-15 09:47:29 -0400
committerGravatar Chuck Lever <chuck.lever@oracle.com> 2023-06-05 09:01:44 -0400
commit5f7fc5d69f6e92ec0b38774c387f5cf7812c5806 (patch)
tree777dbe9452d2baf67ac262a4fa9f01f468965562
parentNFSD: trace nfsctl operations (diff)
downloadlinux-5f7fc5d69f6e92ec0b38774c387f5cf7812c5806.tar.gz
linux-5f7fc5d69f6e92ec0b38774c387f5cf7812c5806.tar.bz2
linux-5f7fc5d69f6e92ec0b38774c387f5cf7812c5806.zip
SUNRPC: Resupply rq_pages from node-local memory
svc_init_buffer() is careful to allocate the initial set of server thread buffer pages from memory on the local NUMA node. svc_alloc_arg() should also be that careful. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r--net/sunrpc/svc_xprt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 42536a0b1db4..9ca3393a197e 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -685,8 +685,9 @@ static int svc_alloc_arg(struct svc_rqst *rqstp)
}
for (filled = 0; filled < pages; filled = ret) {
- ret = alloc_pages_bulk_array(GFP_KERNEL, pages,
- rqstp->rq_pages);
+ ret = alloc_pages_bulk_array_node(GFP_KERNEL,
+ rqstp->rq_pool->sp_id,
+ pages, rqstp->rq_pages);
if (ret > filled)
/* Made progress, don't sleep yet */
continue;