Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp5634201rwd; Mon, 5 Jun 2023 06:34:23 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6GCTPH0Dii/wytrCU0aSBqOWKeijTUWuXm2biW50N6NJbcV7hMP1SltIQaeD+hPGK5kjS2 X-Received: by 2002:a05:6a00:8ca:b0:64d:6a78:1575 with SMTP id s10-20020a056a0008ca00b0064d6a781575mr13488740pfu.30.1685972063201; Mon, 05 Jun 2023 06:34:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685972063; cv=none; d=google.com; s=arc-20160816; b=jrrcGVvszdCL2a3LplbkA+a/F8R7lYLM9hfLnWzxAh83qcqaw9u1SP1Klj3cGTXt4I x2xS3yuBOSxRwSV0W1pIRWMGeKLRG1L6TSs6s4ktlVpR116kdjpOYL54ns07lVMVVxQz 1pBhFpXIgO3LohCQ0wfbbqvV7wo6DTbIT876f7LjY+IhHNGinmeisMalDqK+UXDDbKJC 902dKQAmm8QY782LY7PbbOMAu+DSGEi0aoisSk8oVLgRGwLq/czHpDZjOpcfOShLVDEG CNqYmW4JNg22O4nk1Zr+Zm2UX8Tz5rpIN/nJ3/5VqHgVCghgT8PlH41FxAjqRbjQlfks VvFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject:dkim-signature; bh=ujk6hfUDdSURjYuDi2zkkSC55NR+pboftjqLviJTA1Y=; b=YSTyip3u7YA5UFlchHqP0vi0HTXDESI9NQclIyWLdruI0DCnvwfqZO4YqkV/kR8mXC 8acFpZ1qIew4Vck/mLvAkj7M0bzg71QGMtXpzevxiWajL3+CvA5vkqW/p3A0LnDgKuHY K1OfA3bG6xW/IsKRlemEVug8SVMdN1iD3Zz2ObVOEg+00WMm+w+reVJb1ncXOiTSWX8B 14qNYJSNdeLGfNSBYBqnf1XUxFO7gzL++X/E2sot7da6720VJ4cYdUQRsidl3nmImmrq 8PdSiD9CKvVX10bwdzUKiXz3W5r00f6Sb2SuteDvlS/+pHNIszKtpOYZmgFavwuFsl61 Q+dQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=N4wlwrQj; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t5-20020aa79465000000b00643c4d0d0f5si5271797pfq.39.2023.06.05.06.34.07; Mon, 05 Jun 2023 06:34:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=N4wlwrQj; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233662AbjFENLn (ORCPT + 99 others); Mon, 5 Jun 2023 09:11:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233952AbjFENLe (ORCPT ); Mon, 5 Jun 2023 09:11:34 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFA0510B; Mon, 5 Jun 2023 06:11:26 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 419CA61403; Mon, 5 Jun 2023 13:11:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6522EC433EF; Mon, 5 Jun 2023 13:11:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685970685; bh=6DYpGv7XmUVu7r1PsY1rU+idxBTWrtIe6aWBUN0xwsA=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=N4wlwrQjo+YpmViCjyIzVxwZj5lFP4+amgyiYdgRz38lYwv49lgpqCcB2NvR+hapK izfCbvomNIOyfaJ3oU109K4Xxm7nlohJjAG/GIQJWdMxcZGZ8DwsYFfjKT2MaWPv4B XX5P+Z3tKoYagOxycsL76MaHxxseBNfnMF0/RRjS9pFh8J7U+yZ2+EQjYKYh5Nk2NS ob1oS8buJFsrhE1TEtTYGSMkeICzp0nZUHg6O1ih9JFs7sqbegiGpzwmBx71ceDC0D hY7JTDyKh7Ie8nq8KPjDISOEjuT40Q5LtuUVS2OWOLt1xdgi53WKk5trh4hg2ll04x rMnaxfXMvs+Sg== Subject: [PATCH v1 1/4] svcrdma: Allocate new transports on device's NUMA node From: Chuck Lever To: linux-nfs@vger.kernel.org Cc: Chuck Lever , linux-rdma@vger.kernel.org, tom@talpey.com Date: Mon, 05 Jun 2023 09:11:24 -0400 Message-ID: <168597068439.7694.12044689834419157360.stgit@manet.1015granger.net> In-Reply-To: <168597050247.7694.8719658227499409307.stgit@manet.1015granger.net> References: <168597050247.7694.8719658227499409307.stgit@manet.1015granger.net> User-Agent: StGit/1.5 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Chuck Lever The physical device's NUMA node ID is available when allocating an svc_xprt for an incoming connection. Use that value to ensure the svc_xprt structure is allocated on the NUMA node closest to the device. Signed-off-by: Chuck Lever --- net/sunrpc/xprtrdma/svc_rdma_transport.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index ca04f7a6a085..2abd895046ee 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c @@ -64,7 +64,7 @@ #define RPCDBG_FACILITY RPCDBG_SVCXPRT static struct svcxprt_rdma *svc_rdma_create_xprt(struct svc_serv *serv, - struct net *net); + struct net *net, int node); static struct svc_xprt *svc_rdma_create(struct svc_serv *serv, struct net *net, struct sockaddr *sa, int salen, @@ -123,14 +123,14 @@ static void qp_event_handler(struct ib_event *event, void *context) } static struct svcxprt_rdma *svc_rdma_create_xprt(struct svc_serv *serv, - struct net *net) + struct net *net, int node) { - struct svcxprt_rdma *cma_xprt = kzalloc(sizeof *cma_xprt, GFP_KERNEL); + struct svcxprt_rdma *cma_xprt; - if (!cma_xprt) { - dprintk("svcrdma: failed to create new transport\n"); + cma_xprt = kzalloc_node(sizeof(*cma_xprt), GFP_KERNEL, node); + if (!cma_xprt) return NULL; - } + svc_xprt_init(net, &svc_rdma_class, &cma_xprt->sc_xprt, serv); INIT_LIST_HEAD(&cma_xprt->sc_accept_q); INIT_LIST_HEAD(&cma_xprt->sc_rq_dto_q); @@ -193,9 +193,9 @@ static void handle_connect_req(struct rdma_cm_id *new_cma_id, struct svcxprt_rdma *newxprt; struct sockaddr *sa; - /* Create a new transport */ newxprt = svc_rdma_create_xprt(listen_xprt->sc_xprt.xpt_server, - listen_xprt->sc_xprt.xpt_net); + listen_xprt->sc_xprt.xpt_net, + ibdev_to_node(new_cma_id->device)); if (!newxprt) return; newxprt->sc_cm_id = new_cma_id; @@ -304,7 +304,7 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv, if (sa->sa_family != AF_INET && sa->sa_family != AF_INET6) return ERR_PTR(-EAFNOSUPPORT); - cma_xprt = svc_rdma_create_xprt(serv, net); + cma_xprt = svc_rdma_create_xprt(serv, net, NUMA_NO_NODE); if (!cma_xprt) return ERR_PTR(-ENOMEM); set_bit(XPT_LISTENER, &cma_xprt->sc_xprt.xpt_flags);