1
1

btl/openib: correctly issue a warning when two btls or more are in the default subnet gid

Thanks Matias Cabral for reporting this issue.

Fixes #1352
Этот коммит содержится в:
Gilles Gouaillardet 2016-02-15 14:36:59 +09:00
родитель 75233573d1
Коммит 861564df94
2 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -18,7 +18,7 @@
* Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013-2014 NVIDIA Corporation. All rights reserved. * Copyright (c) 2013-2014 NVIDIA Corporation. All rights reserved.
* Copyright (c) 2014 Bull SAS. All rights reserved. * Copyright (c) 2014 Bull SAS. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science * Copyright (c) 2015-2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved. * and Technology (RIST). All rights reserved.
* $COPYRIGHT$ * $COPYRIGHT$
* *
@ -317,6 +317,7 @@ struct mca_btl_openib_component_t {
#if HAVE_DECL_IBV_LINK_LAYER_ETHERNET #if HAVE_DECL_IBV_LINK_LAYER_ETHERNET
bool rroce_enable; bool rroce_enable;
#endif #endif
unsigned int num_default_gid_btls; /* numbers of btl in the default subnet */
}; typedef struct mca_btl_openib_component_t mca_btl_openib_component_t; }; typedef struct mca_btl_openib_component_t mca_btl_openib_component_t;
OPAL_MODULE_DECLSPEC extern mca_btl_openib_component_t mca_btl_openib_component; OPAL_MODULE_DECLSPEC extern mca_btl_openib_component_t mca_btl_openib_component;

Просмотреть файл

@ -182,6 +182,7 @@ static int btl_openib_component_open(void)
/* initialize state */ /* initialize state */
mca_btl_openib_component.ib_num_btls = 0; mca_btl_openib_component.ib_num_btls = 0;
mca_btl_openib_component.num_default_gid_btls = 0;
mca_btl_openib_component.openib_btls = NULL; mca_btl_openib_component.openib_btls = NULL;
OBJ_CONSTRUCT(&mca_btl_openib_component.devices, opal_pointer_array_t); OBJ_CONSTRUCT(&mca_btl_openib_component.devices, opal_pointer_array_t);
mca_btl_openib_component.devices_count = 0; mca_btl_openib_component.devices_count = 0;
@ -688,13 +689,17 @@ static int init_one_port(opal_list_t *btl_list, mca_btl_openib_device_t *device,
ibv_get_device_name(device->ib_dev), port_num, subnet_id)); ibv_get_device_name(device->ib_dev), port_num, subnet_id));
#endif #endif
if(mca_btl_openib_component.ib_num_btls > 0 && if(mca_btl_openib_component.num_default_gid_btls > 0 &&
IB_DEFAULT_GID_PREFIX == subnet_id && IB_DEFAULT_GID_PREFIX == subnet_id &&
mca_btl_openib_component.warn_default_gid_prefix) { mca_btl_openib_component.warn_default_gid_prefix) {
opal_show_help("help-mpi-btl-openib.txt", "default subnet prefix", opal_show_help("help-mpi-btl-openib.txt", "default subnet prefix",
true, opal_process_info.nodename); true, opal_process_info.nodename);
} }
if (IB_DEFAULT_GID_PREFIX == subnet_id) {
mca_btl_openib_component.num_default_gid_btls++;
}
lmc = (1 << ib_port_attr->lmc); lmc = (1 << ib_port_attr->lmc);
lmc_step = 1; lmc_step = 1;