Commit bd018b98 authored by Chuck Lever's avatar Chuck Lever
Browse files

SUNRPC: Revert 5f7fc5d6



Guillaume says:
> I believe commit 5f7fc5d6 ("SUNRPC: Resupply rq_pages from
> node-local memory") in Linux 6.5+ is incorrect. It passes
> unconditionally rq_pool->sp_id as the NUMA node.
>
> While the comment in the svc_pool declaration in sunrpc/svc.h says
> that sp_id is also the NUMA node id, it might not be the case if
> the svc is created using svc_create_pooled(). svc_created_pooled()
> can use the per-cpu pool mode therefore in this case sp_id would
> be the cpu id.

Fix this by reverting now. At a later point this minor optimization,
and the deceptive labeling of the sp_id field, can be revisited.

Reported-by: default avatarGuillaume Morin <guillaume@morinfr.org>
Closes: https://lore.kernel.org/linux-nfs/ZYC9rsno8qYggVt9@bender.morinfr.org/T/#u


Fixes: 5f7fc5d6 ("SUNRPC: Resupply rq_pages from node-local memory")
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 1227561c
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -654,9 +654,8 @@ static bool svc_alloc_arg(struct svc_rqst *rqstp)
	}

	for (filled = 0; filled < pages; filled = ret) {
		ret = alloc_pages_bulk_array_node(GFP_KERNEL,
						  rqstp->rq_pool->sp_id,
						  pages, rqstp->rq_pages);
		ret = alloc_pages_bulk_array(GFP_KERNEL, pages,
					     rqstp->rq_pages);
		if (ret > filled)
			/* Made progress, don't sleep yet */
			continue;