Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp465072pxb; Thu, 21 Jan 2021 11:16:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJzCAXZ9AbVQNc4mXdprs9ZrtXfxoK3LLo4qs7SWTBytie+7TU8LllrPB/7gT0hICIFGN5mZ X-Received: by 2002:a17:906:87c3:: with SMTP id zb3mr663201ejb.244.1611256572863; Thu, 21 Jan 2021 11:16:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611256572; cv=none; d=google.com; s=arc-20160816; b=Y5+uem0dVVzDZAxhAnCnRNxpMASrXhpt2qbjJiMsbbgQcp29KiUuulEa3tdlYMt0UD nLi0GWtM+lgI9P1C7hJfNHIp/4yo5VJWEZwpIkKkZgvsvZQa/Ncumv5HEdYb7F853vVB 9pfMobcXmAdN3iJDfWtbipPjr14tuPq/YROin6JcrKIQDVhK353F+PWLYyskxHf57uM4 iPwgA54W6hALXR9L9WzgHrwTA17wrUoikoxAwFcjd82YMxeTx1wmKoTXnTGC316nEBou UR0eT8+/meuugvOj3Rizwg/TEPyX8UwD2qqrtShI+8SLM31sbWlT2TuB11U/+23u8QxN Nsnw== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=0iyVltByHnGoJJ0DqUFPeSCNE6AdYbPEXFJvYewGE6E=; b=bOvXZxLok4O6C9lwi5Lud+2ZpvUnBlsUUnlbvzM1YF7xJbuPkLj3fHFPx5nmxBE7Ci o3Qa6lBNtDw2ogGimc1fI0xbtJteqLXa2NqhpFw9UepB/ZOQf/aSRZ8YtISh7POJOBrr qivsjdCAcwZhbHrmbxPBJ3wlqtokXz8DtFQ5ahVKlzs1ta2lEz8j1DyqjozWo8WUY4L7 xrhIDmt92EKp0oJ38qsuYfvajcpzTRKx3fiQp2QwOV9IEzAFkxRP5Wo6tqLOFUYFcy1x XQpjg+eRDn8xKiQCjOJDyZqB07hVumMd8iGtnJgM1gSG7fQEqyKw3e7/iDaMegYml6xj sT5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernelim-com.20150623.gappssmtp.com header.s=20150623 header.b=Q07HW7w6; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lx2si2159933ejb.131.2021.01.21.11.15.48; Thu, 21 Jan 2021 11:16:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernelim-com.20150623.gappssmtp.com header.s=20150623 header.b=Q07HW7w6; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726576AbhAUTMi (ORCPT + 99 others); Thu, 21 Jan 2021 14:12:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726849AbhAUTLF (ORCPT ); Thu, 21 Jan 2021 14:11:05 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5A6BC0613D6 for ; Thu, 21 Jan 2021 11:10:24 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id m2so2413139wmm.1 for ; Thu, 21 Jan 2021 11:10:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernelim-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0iyVltByHnGoJJ0DqUFPeSCNE6AdYbPEXFJvYewGE6E=; b=Q07HW7w6WltC6pb2boEf4L/NaMeAMFxuqbhsB/WsrHc2uCOAwr60DvJGwiVVVF/bhd eZl51tntaUHzmJ+G/FPn5TqOLL5iSO48byCtcsvPITZlvDwLj6L7f5JeC1fLg6w7Hm18 GJsgzDSQ2kHeEQsHEmhN45zXc795CandoQoP65V2tjDLJpB2Oxr7UPMJKJ689oRima9/ F4+v0i/IMZHFn9nSWu+z7LVSRSGQHS5xcoMeOf83Xaxh1xkjcWtiWGbTLNzawX+hjWEF ARcTtD5hSAumNCxg0Ua8eIrkDmXMC3+yzYVlMscqiM/CIb9l9RRLW3spTt5J30V9wLq7 85fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0iyVltByHnGoJJ0DqUFPeSCNE6AdYbPEXFJvYewGE6E=; b=o94p734CvX+ehmSrMqrO2fnYmyJwWONKmHh6yK0uQMn8Bg0jINBzOkYthxBc+n+XVZ YihdNRhuKBRSTDkfwtYI1pNW4xt5GIOQ54WXLAAy8mP3x35NnGpVZzR6FOQmP4dmCaor n17jvkDduk0/+kSbsmmJOPuJFzo1hQxDQM7AbpaJcFLjGIK+C8NZigS05WXKfoWsoKEK L6USX+xi1csjfS6Rr5Qf1B/BI9X9FeVL9/+NDVO+rSd246KT1n6h42Voc6XKtunLfK+L LvRdGffUBG4JBNo6dlU0Jy0BNzKqjlP/I7WODwFcZ/oA+oYYIdex2lYgYouxZq6S6Ug7 NHkA== X-Gm-Message-State: AOAM53066tTJpMnOqmNrov277vflWtWkxSXXTu2lJOKeyWbUx0Du5gJp qalbPPN3RZzEFusxB4VelVlMKZHVqQOsTsbn X-Received: by 2002:a05:600c:19c8:: with SMTP id u8mr730747wmq.59.1611256223124; Thu, 21 Jan 2021 11:10:23 -0800 (PST) Received: from jupiter.home.aloni.org ([77.124.84.167]) by smtp.gmail.com with ESMTPSA id d30sm11160353wrc.92.2021.01.21.11.10.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Jan 2021 11:10:22 -0800 (PST) From: Dan Aloni To: linux-nfs@vger.kernel.org Cc: Trond Myklebust , Anna Schumaker Subject: [PATCH v1 0/5] NFSv3 client RDMA multipath enhancements Date: Thu, 21 Jan 2021 21:10:15 +0200 Message-Id: <20210121191020.3144948-1-dan@kernelim.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Hi, The purpose of the following changes is to allow specifying multiple target IP addresses in a single mount. Combining this with nconnect and servers that support exposing multiple ports, we can achieve load balancing and much greater throughput, especially on RDMA setups, even with the older NFSv3 protocol. The changes allow specifing a new `remoteports=` mount option providing a group of IP addresses, from which `nconnect` at sunrpc scope picks target transport address in round-robin. There's also an accompanying `localports` parameter that allows local address bind so that the source port is better controlled in a way to ensure that transports are not hogging a single local interface. This patchset targets the linux-next tree. Dan Aloni (5): sunrpc: Allow specifying a vector of IP addresses for nconnect xprtrdma: Bind to a local address if requested nfs: Extend nconnect with remoteports and localports mount params sunrpc: Add srcaddr to xprt sysfs debug nfs: Increase NFS_MAX_CONNECTIONS fs/nfs/client.c | 24 +++ fs/nfs/fs_context.c | 173 ++++++++++++++++++++- fs/nfs/internal.h | 4 + include/linux/nfs_fs_sb.h | 2 + include/linux/sunrpc/clnt.h | 9 ++ include/linux/sunrpc/xprt.h | 1 + net/sunrpc/clnt.c | 47 ++++++ net/sunrpc/debugfs.c | 8 +- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 2 +- net/sunrpc/xprtrdma/transport.c | 17 +- net/sunrpc/xprtrdma/verbs.c | 15 +- net/sunrpc/xprtrdma/xprt_rdma.h | 5 +- net/sunrpc/xprtsock.c | 49 +++--- 13 files changed, 329 insertions(+), 27 deletions(-) -- 2.26.2