From patchwork Thu Feb 27 21:11:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Simmons X-Patchwork-Id: 11410035 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8E8341580 for ; Thu, 27 Feb 2020 21:28:25 +0000 (UTC) Received: from pdx1-mailman02.dreamhost.com (pdx1-mailman02.dreamhost.com [64.90.62.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7719F246A0 for ; Thu, 27 Feb 2020 21:28:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7719F246A0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lustre-devel-bounces@lists.lustre.org Received: from pdx1-mailman02.dreamhost.com (localhost [IPv6:::1]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id 0DD22349377; Thu, 27 Feb 2020 13:24:50 -0800 (PST) X-Original-To: lustre-devel@lists.lustre.org Delivered-To: lustre-devel-lustre.org@pdx1-mailman02.dreamhost.com Received: from smtp3.ccs.ornl.gov (smtp3.ccs.ornl.gov [160.91.203.39]) by pdx1-mailman02.dreamhost.com (Postfix) with ESMTP id 2A7F021FB5E for ; Thu, 27 Feb 2020 13:19:19 -0800 (PST) Received: from star.ccs.ornl.gov (star.ccs.ornl.gov [160.91.202.134]) by smtp3.ccs.ornl.gov (Postfix) with ESMTP id A57242AD3; Thu, 27 Feb 2020 16:18:15 -0500 (EST) Received: by star.ccs.ornl.gov (Postfix, from userid 2004) id A3BC146D; Thu, 27 Feb 2020 16:18:15 -0500 (EST) From: James Simmons To: Andreas Dilger , Oleg Drokin , NeilBrown Date: Thu, 27 Feb 2020 16:11:08 -0500 Message-Id: <1582838290-17243-201-git-send-email-jsimmons@infradead.org> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1582838290-17243-1-git-send-email-jsimmons@infradead.org> References: <1582838290-17243-1-git-send-email-jsimmons@infradead.org> Subject: [lustre-devel] [PATCH 200/622] lnet: remove .nf_min_max handling 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 MIME-Version: 1.0 Errors-To: lustre-devel-bounces@lists.lustre.org Sender: "lustre-devel" From: Kit Westneat The .nf_min_max handling was only used for server side debugging. This has been removed in the OpenSFS tree as well so lets remove it here since the code related to nf_min_max handling is not used. WC-bug-id: https://jira.whamcloud.com/browse/LU-8939 Lustre-commit: a9b830da51bd ("LU-8939 nodemap: remove deprecated lproc files") Signed-off-by: Kit Westneat Reviewed-on: https://review.whamcloud.com/24352 Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Reviewed-by: Sebastien Buisson Reviewed-by: Oleg Drokin Signed-off-by: James Simmons --- net/lnet/lnet/nidstrings.c | 278 ++------------------------------------------- 1 file changed, 10 insertions(+), 268 deletions(-) diff --git a/net/lnet/lnet/nidstrings.c b/net/lnet/lnet/nidstrings.c index 13338d0..eca5092 100644 --- a/net/lnet/lnet/nidstrings.c +++ b/net/lnet/lnet/nidstrings.c @@ -451,264 +451,6 @@ int cfs_print_nidlist(char *buffer, int count, struct list_head *nidlist) } EXPORT_SYMBOL(cfs_print_nidlist); -/** - * Determines minimum and maximum addresses for a single - * numeric address range - * - * @ar - * @min_nid *min_nid __u32 representation of min NID - * @max_nid *max_nid __u32 representation of max NID - * - * Return: -EINVAL unsupported LNET range - * -ERANGE non-contiguous LNET range - */ -static int cfs_ip_ar_min_max(struct addrrange *ar, u32 *min_nid, - u32 *max_nid) -{ - struct cfs_expr_list *expr_list; - struct cfs_range_expr *range; - unsigned int min_ip[4] = { 0 }; - unsigned int max_ip[4] = { 0 }; - int cur_octet = 0; - bool expect_full_octet = false; - - list_for_each_entry(expr_list, &ar->ar_numaddr_ranges, el_link) { - int re_count = 0; - - list_for_each_entry(range, &expr_list->el_exprs, re_link) { - /* XXX: add support for multiple & non-contig. re's */ - if (re_count > 0) - return -EINVAL; - - /* if a previous octet was ranged, then all remaining - * octets must be full for contiguous range - */ - if (expect_full_octet && (range->re_lo != 0 || - range->re_hi != 255)) - return -ERANGE; - - if (range->re_stride != 1) - return -ERANGE; - - if (range->re_lo > range->re_hi) - return -EINVAL; - - if (range->re_lo != range->re_hi) - expect_full_octet = true; - - min_ip[cur_octet] = range->re_lo; - max_ip[cur_octet] = range->re_hi; - - re_count++; - } - - cur_octet++; - } - - if (min_nid) - *min_nid = ((min_ip[0] << 24) | (min_ip[1] << 16) | - (min_ip[2] << 8) | min_ip[3]); - - if (max_nid) - *max_nid = ((max_ip[0] << 24) | (max_ip[1] << 16) | - (max_ip[2] << 8) | max_ip[3]); - - return 0; -} - -/** - * Determines minimum and maximum addresses for a single - * numeric address range - * - * @ar - * @min_nid *min_nid __u32 representation of min NID - * @max_nid *max_nid __u32 representation of max NID - * - * Return: -EINVAL unsupported LNET range - */ -static int cfs_num_ar_min_max(struct addrrange *ar, u32 *min_nid, - u32 *max_nid) -{ - struct cfs_expr_list *el; - struct cfs_range_expr *re; - unsigned int min_addr = 0; - unsigned int max_addr = 0; - - list_for_each_entry(el, &ar->ar_numaddr_ranges, el_link) { - int re_count = 0; - - list_for_each_entry(re, &el->el_exprs, re_link) { - if (re_count > 0) - return -EINVAL; - if (re->re_lo > re->re_hi) - return -EINVAL; - - if (re->re_lo < min_addr || !min_addr) - min_addr = re->re_lo; - if (re->re_hi > max_addr) - max_addr = re->re_hi; - - re_count++; - } - } - - if (min_nid) - *min_nid = min_addr; - if (max_nid) - *max_nid = max_addr; - - return 0; -} - -/** - * Takes a linked list of nidrange expressions, determines the minimum - * and maximum nid and creates appropriate nid structures - * - * @nidlist - * @min_nid *min_nid string representation of min NID - * @max_nid *max_nid string representation of max NID - * - * Return: -EINVAL unsupported LNET range - * -ERANGE non-contiguous LNET range - */ -int cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid, - char *max_nid, size_t nidstr_length) -{ - struct nidrange *first_nidrange; - int netnum; - struct netstrfns *nf; - char *lndname; - u32 min_addr; - u32 max_addr; - char min_addr_str[IPSTRING_LENGTH]; - char max_addr_str[IPSTRING_LENGTH]; - int rc; - - first_nidrange = list_entry(nidlist->next, struct nidrange, nr_link); - - netnum = first_nidrange->nr_netnum; - nf = first_nidrange->nr_netstrfns; - lndname = nf->nf_name; - - rc = nf->nf_min_max(nidlist, &min_addr, &max_addr); - if (rc < 0) - return rc; - - nf->nf_addr2str(min_addr, min_addr_str, sizeof(min_addr_str)); - nf->nf_addr2str(max_addr, max_addr_str, sizeof(max_addr_str)); - - snprintf(min_nid, nidstr_length, "%s@%s%d", min_addr_str, lndname, - netnum); - snprintf(max_nid, nidstr_length, "%s@%s%d", max_addr_str, lndname, - netnum); - - return 0; -} -EXPORT_SYMBOL(cfs_nidrange_find_min_max); - -/** - * Determines the min and max NID values for num LNDs - * - * @nidlist - * @min_nid *min_nid if provided, returns string representation of min NID - * @max_nid *max_nid if provided, returns string representation of max NID - * - * Return: -EINVAL unsupported LNET range - * -ERANGE non-contiguous LNET range - */ -static int cfs_num_min_max(struct list_head *nidlist, u32 *min_nid, - u32 *max_nid) -{ - struct nidrange *nr; - struct addrrange *ar; - unsigned int tmp_min_addr = 0; - unsigned int tmp_max_addr = 0; - unsigned int min_addr = 0; - unsigned int max_addr = 0; - int nidlist_count = 0; - int rc; - - list_for_each_entry(nr, nidlist, nr_link) { - if (nidlist_count > 0) - return -EINVAL; - - list_for_each_entry(ar, &nr->nr_addrranges, ar_link) { - rc = cfs_num_ar_min_max(ar, &tmp_min_addr, - &tmp_max_addr); - if (rc) - return rc; - - if (tmp_min_addr < min_addr || !min_addr) - min_addr = tmp_min_addr; - if (tmp_max_addr > max_addr) - max_addr = tmp_min_addr; - } - } - - if (max_nid) - *max_nid = max_addr; - if (min_nid) - *min_nid = min_addr; - - return 0; -} - -/** - * Takes an nidlist and determines the minimum and maximum - * ip addresses. - * - * @nidlist - * @min_nid *min_nid if provided, returns string representation of min NID - * @max_nid *max_nid if provided, returns string representation of max NID - * - * Return: -EINVAL unsupported LNET range - * -ERANGE non-contiguous LNET range - */ -static int cfs_ip_min_max(struct list_head *nidlist, u32 *min_nid, - u32 *max_nid) -{ - struct nidrange *nr; - struct addrrange *ar; - u32 tmp_min_ip_addr = 0; - u32 tmp_max_ip_addr = 0; - u32 min_ip_addr = 0; - u32 max_ip_addr = 0; - int nidlist_count = 0; - int rc; - - list_for_each_entry(nr, nidlist, nr_link) { - if (nidlist_count > 0) - return -EINVAL; - - if (nr->nr_all) { - min_ip_addr = 0; - max_ip_addr = 0xffffffff; - break; - } - - list_for_each_entry(ar, &nr->nr_addrranges, ar_link) { - rc = cfs_ip_ar_min_max(ar, &tmp_min_ip_addr, - &tmp_max_ip_addr); - if (rc) - return rc; - - if (tmp_min_ip_addr < min_ip_addr || !min_ip_addr) - min_ip_addr = tmp_min_ip_addr; - if (tmp_max_ip_addr > max_ip_addr) - max_ip_addr = tmp_max_ip_addr; - } - - nidlist_count++; - } - - if (min_nid) - *min_nid = min_ip_addr; - if (max_nid) - *max_nid = max_ip_addr; - - return 0; -} - static int libcfs_lo_str2addr(const char *str, int nob, u32 *addr) { @@ -912,8 +654,8 @@ static int cfs_ip_min_max(struct list_head *nidlist, u32 *min_nid, .nf_str2addr = libcfs_lo_str2addr, .nf_parse_addrlist = libcfs_num_parse, .nf_print_addrlist = libcfs_num_addr_range_print, - .nf_match_addr = libcfs_num_match, - .nf_min_max = cfs_num_min_max }, + .nf_match_addr = libcfs_num_match + }, { .nf_type = SOCKLND, .nf_name = "tcp", .nf_modname = "ksocklnd", @@ -921,8 +663,8 @@ static int cfs_ip_min_max(struct list_head *nidlist, u32 *min_nid, .nf_str2addr = libcfs_ip_str2addr, .nf_parse_addrlist = cfs_ip_addr_parse, .nf_print_addrlist = libcfs_ip_addr_range_print, - .nf_match_addr = cfs_ip_addr_match, - .nf_min_max = cfs_ip_min_max }, + .nf_match_addr = cfs_ip_addr_match + }, { .nf_type = O2IBLND, .nf_name = "o2ib", .nf_modname = "ko2iblnd", @@ -930,8 +672,8 @@ static int cfs_ip_min_max(struct list_head *nidlist, u32 *min_nid, .nf_str2addr = libcfs_ip_str2addr, .nf_parse_addrlist = cfs_ip_addr_parse, .nf_print_addrlist = libcfs_ip_addr_range_print, - .nf_match_addr = cfs_ip_addr_match, - .nf_min_max = cfs_ip_min_max }, + .nf_match_addr = cfs_ip_addr_match + }, { .nf_type = GNILND, .nf_name = "gni", .nf_modname = "kgnilnd", @@ -939,8 +681,8 @@ static int cfs_ip_min_max(struct list_head *nidlist, u32 *min_nid, .nf_str2addr = libcfs_num_str2addr, .nf_parse_addrlist = libcfs_num_parse, .nf_print_addrlist = libcfs_num_addr_range_print, - .nf_match_addr = libcfs_num_match, - .nf_min_max = cfs_num_min_max }, + .nf_match_addr = libcfs_num_match + }, { .nf_type = GNIIPLND, .nf_name = "gip", .nf_modname = "kgnilnd", @@ -948,8 +690,8 @@ static int cfs_ip_min_max(struct list_head *nidlist, u32 *min_nid, .nf_str2addr = libcfs_ip_str2addr, .nf_parse_addrlist = cfs_ip_addr_parse, .nf_print_addrlist = libcfs_ip_addr_range_print, - .nf_match_addr = cfs_ip_addr_match, - .nf_min_max = cfs_ip_min_max }, + .nf_match_addr = cfs_ip_addr_match + }, }; static const size_t libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns);