From patchwork Fri Sep 7 00:49:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: NeilBrown X-Patchwork-Id: 10591329 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 06E6B921 for ; Fri, 7 Sep 2018 00:51:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC7012B17D for ; Fri, 7 Sep 2018 00:51:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DE6142B181; Fri, 7 Sep 2018 00:51:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from pdx1-mailman02.dreamhost.com (pdx1-mailman02.dreamhost.com [64.90.62.194]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 71C142B17D for ; Fri, 7 Sep 2018 00:51:35 +0000 (UTC) Received: from pdx1-mailman02.dreamhost.com (localhost [IPv6:::1]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id 9D70D4E2FBF; Thu, 6 Sep 2018 17:51:34 -0700 (PDT) X-Original-To: lustre-devel@lists.lustre.org Delivered-To: lustre-devel-lustre.org@pdx1-mailman02.dreamhost.com Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id E2A324E2FAF for ; Thu, 6 Sep 2018 17:51:32 -0700 (PDT) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id B2B14AED7; Fri, 7 Sep 2018 00:51:31 +0000 (UTC) From: NeilBrown To: Oleg Drokin , Doug Oucharek , James Simmons , Andreas Dilger Date: Fri, 07 Sep 2018 10:49:31 +1000 Message-ID: <153628058697.8267.6056114844033479774.stgit@noble> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Subject: [lustre-devel] [PATCH 00/34] Beginning of multi-rail support for drivers/staging/lustre X-BeenThere: lustre-devel@lists.lustre.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "For discussing Lustre software development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lustre Development List Errors-To: lustre-devel-bounces@lists.lustre.org Sender: "lustre-devel" X-Virus-Scanned: ClamAV using ClamSMTP The following series implements the first patch in the multi-rail series: Commit: 8cbb8cd3e771 ("LU-7734 lnet: Multi-Rail local NI split") I split that commit up into 40 individual commits which can be found at https://github.com/neilbrown/lustre/commits/multirail though you need to scroll down a bit, as that contains all the multi-rail series. I then ported most of these patches to my mainline tree. Some that I haven't included are: - lnet: Move lnet_msg_alloc/free down a bit. lnet_msg_alloc/free don't exist any more - lnet: lib-types: change some tabs to spaces - lnet - assorted whitespace changes. - lnet: change ni_last_alive from time64_t to long - lnet: add lnet_net_state net_state is never used. - lnet: remove 'static' from lnet_get_net_config() I've also made a couple of minor changes to individual patches not strictly related to porting (the net_prio field is never used, so I never added it - I should have made that a separate patch). This series compiles, but doesn't work. I get a NULL pointer reference, then an assertion failure. If I fix those, it hangs. The NULL pointer ref and the failing assertion are gone with later patches, so I hope the other problems are too. Some of these patches have very poor descriptions, such as "I have no idea what this does". If someone would like to explain - or maybe say "Oh, we really shouldn't have done that", I'd be very happy to receive that, and update the description or patch accordingly. These will all appear in my lustre-testing branch, but won't migrate to 'lustre' until I, at least, have enough other patches that I can get a successful test run. Review and comments always welcome. Thanks, NeilBrown Signed-off-by: Amir Shehata Reviewed-by: Doug Oucharek Reviewed-by: Olaf Weber Signed-off-by: NeilBrown --- Amir Shehata (1): Completely re-write lnet_parse_networks(). NeilBrown (33): struct lnet_ni - reformat comments. lnet: Create struct lnet_net lnet: struct lnet_ni: move ni_lnd to lnet_net lnet: embed lnd_tunables in lnet_ni lnet: begin separating "networks" from "network interfaces". lnet: store separate xmit/recv net-interface in each message. lnet: change lnet_peer to reference the net, rather than ni. lnet: add cpt to lnet_match_info. lnet: add list of cpts to lnet_net. lnet: add ni arg to lnet_cpt_of_nid() lnet: pass tun to lnet_startup_lndni, instead of full conf lnet: split lnet_startup_lndni lnet: reverse order of lnet_startup_lnd{net,ni} lnet: rename lnet_find_net_locked to lnet_find_rnet_locked lnet: extend zombie handling to nets and nis lnet: lnet_shutdown_lndnets - remove some cleanup code. lnet: move lnet_shutdown_lndnets down to after first use lnet: add ni_state lnet: simplify lnet_islocalnet() lnet: discard ni_cpt_list lnet: add net_ni_added lnet: don't take reference in lnet_XX2ni_locked() lnet: don't need lock to test ln_shutdown. lnet: don't take lock over lnet_net_unique() lnet: swap 'then' and 'else' branches in lnet_startup_lndnet lnet: only valid lnd_type when net_id is unique. lnet: make it possible to add a new interface to a network lnet: add checks to ensure network interface names are unique. lnet: track tunables in lnet_startup_lndnet() lnet: fix typo lnet: lnet_dyn_add_ni: fix ping_info count lnet: lnet_dyn_del_ni: fix ping_info count lnet: introduce use_tcp_bonding mod param .../staging/lustre/include/linux/lnet/lib-lnet.h | 31 - .../staging/lustre/include/linux/lnet/lib-types.h | 142 ++- .../lustre/include/uapi/linux/lnet/lnet-dlc.h | 18 .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 10 .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 6 .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 12 .../lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c | 74 +- .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 25 - drivers/staging/lustre/lnet/lnet/acceptor.c | 8 drivers/staging/lustre/lnet/lnet/api-ni.c | 939 +++++++++++++------- drivers/staging/lustre/lnet/lnet/config.c | 688 +++++++++++---- drivers/staging/lustre/lnet/lnet/lib-move.c | 132 ++- drivers/staging/lustre/lnet/lnet/lib-ptl.c | 6 drivers/staging/lustre/lnet/lnet/lo.c | 2 drivers/staging/lustre/lnet/lnet/net_fault.c | 3 drivers/staging/lustre/lnet/lnet/peer.c | 31 - drivers/staging/lustre/lnet/lnet/router.c | 51 + drivers/staging/lustre/lnet/lnet/router_proc.c | 24 - drivers/staging/lustre/lnet/selftest/brw_test.c | 2 drivers/staging/lustre/lnet/selftest/framework.c | 3 drivers/staging/lustre/lnet/selftest/selftest.h | 2 21 files changed, 1507 insertions(+), 702 deletions(-) -- Signature