mtl/ofi: add some more mca parameters
allow for toggling of both control/data progress models. allow for using FI_AV_TABLE or FI_AV_MAP for av type. Signed-off-by: Howard Pritchard <howardp@lanl.gov>
Этот коммит содержится в:
родитель
0d85d688a5
Коммит
22c8743557
@ -3,7 +3,7 @@
|
|||||||
* Copyright (c) 2013-2016 Intel, Inc. All rights reserved
|
* Copyright (c) 2013-2016 Intel, Inc. All rights reserved
|
||||||
*
|
*
|
||||||
* Copyright (c) 2014-2015 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2014-2015 Cisco Systems, Inc. All rights reserved.
|
||||||
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
* Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -27,6 +27,43 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
|
|||||||
static int param_priority;
|
static int param_priority;
|
||||||
static char *prov_include;
|
static char *prov_include;
|
||||||
static char *prov_exclude;
|
static char *prov_exclude;
|
||||||
|
static int control_progress;
|
||||||
|
static int data_progress;
|
||||||
|
static int av_type;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enumerators
|
||||||
|
*/
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MTL_OFI_PROG_AUTO=1,
|
||||||
|
MTL_OFI_PROG_MANUAL,
|
||||||
|
MTL_OFI_PROG_UNKNOWN,
|
||||||
|
};
|
||||||
|
|
||||||
|
mca_base_var_enum_value_t control_prog_type[] = {
|
||||||
|
{MTL_OFI_PROG_AUTO, "auto"},
|
||||||
|
{MTL_OFI_PROG_MANUAL, "manual"},
|
||||||
|
{0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
mca_base_var_enum_value_t data_prog_type[] = {
|
||||||
|
{MTL_OFI_PROG_AUTO, "auto"},
|
||||||
|
{MTL_OFI_PROG_MANUAL, "manual"},
|
||||||
|
{0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MTL_OFI_AV_MAP=1,
|
||||||
|
MTL_OFI_AV_TABLE,
|
||||||
|
MTL_OFI_AV_UNKNOWN,
|
||||||
|
};
|
||||||
|
|
||||||
|
mca_base_var_enum_value_t av_table_type[] = {
|
||||||
|
{MTL_OFI_AV_MAP, "map"},
|
||||||
|
{MTL_OFI_AV_TABLE, "table"},
|
||||||
|
{0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
mca_mtl_ofi_component_t mca_mtl_ofi_component = {
|
mca_mtl_ofi_component_t mca_mtl_ofi_component = {
|
||||||
{
|
{
|
||||||
@ -56,6 +93,9 @@ mca_mtl_ofi_component_t mca_mtl_ofi_component = {
|
|||||||
static int
|
static int
|
||||||
ompi_mtl_ofi_component_register(void)
|
ompi_mtl_ofi_component_register(void)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
mca_base_var_enum_t *new_enum = NULL;
|
||||||
|
|
||||||
param_priority = 25; /* for now give a lower priority than the psm mtl */
|
param_priority = 25; /* for now give a lower priority than the psm mtl */
|
||||||
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
|
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
|
||||||
"priority", "Priority of the OFI MTL component",
|
"priority", "Priority of the OFI MTL component",
|
||||||
@ -82,6 +122,51 @@ ompi_mtl_ofi_component_register(void)
|
|||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
&prov_exclude);
|
&prov_exclude);
|
||||||
|
|
||||||
|
ret = mca_base_var_enum_create ("control_prog_type", control_prog_type, &new_enum);
|
||||||
|
if (OPAL_SUCCESS != ret) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
control_progress = MTL_OFI_PROG_MANUAL;
|
||||||
|
mca_base_component_var_register (&mca_mtl_ofi_component.super.mtl_version,
|
||||||
|
"control_progress",
|
||||||
|
"Specify control progress model (default: manual). Set to auto for auto progress.",
|
||||||
|
MCA_BASE_VAR_TYPE_INT, new_enum, 0, 0,
|
||||||
|
OPAL_INFO_LVL_3,
|
||||||
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
|
&control_progress);
|
||||||
|
OBJ_RELEASE(new_enum);
|
||||||
|
|
||||||
|
ret = mca_base_var_enum_create ("data_prog_type", data_prog_type, &new_enum);
|
||||||
|
if (OPAL_SUCCESS != ret) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
data_progress = MTL_OFI_PROG_AUTO;
|
||||||
|
mca_base_component_var_register(&mca_mtl_ofi_component.super.mtl_version,
|
||||||
|
"data_progress",
|
||||||
|
"Specify data progress model (default: auto). Set to manual for manual progress.",
|
||||||
|
MCA_BASE_VAR_TYPE_INT, new_enum, 0, 0,
|
||||||
|
OPAL_INFO_LVL_3,
|
||||||
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
|
&data_progress);
|
||||||
|
OBJ_RELEASE(new_enum);
|
||||||
|
|
||||||
|
ret = mca_base_var_enum_create ("av_type", av_table_type, &new_enum);
|
||||||
|
if (OPAL_SUCCESS != ret) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
av_type = MTL_OFI_AV_MAP;
|
||||||
|
mca_base_component_var_register (&mca_mtl_ofi_component.super.mtl_version,
|
||||||
|
"av",
|
||||||
|
"Specify AV type to use (default: map). Set to table for FI_AV_TABLE AV type.",
|
||||||
|
MCA_BASE_VAR_TYPE_INT, new_enum, 0, 0,
|
||||||
|
OPAL_INFO_LVL_3,
|
||||||
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
|
&av_type);
|
||||||
|
OBJ_RELEASE(new_enum);
|
||||||
|
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,9 +324,26 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
|
|||||||
hints->rx_attr->msg_order = FI_ORDER_SAS;
|
hints->rx_attr->msg_order = FI_ORDER_SAS;
|
||||||
|
|
||||||
hints->domain_attr->threading = FI_THREAD_UNSPEC;
|
hints->domain_attr->threading = FI_THREAD_UNSPEC;
|
||||||
|
|
||||||
|
if (MTL_OFI_PROG_AUTO == control_progress) {
|
||||||
|
hints->domain_attr->control_progress = FI_PROGRESS_AUTO;
|
||||||
|
} else {
|
||||||
hints->domain_attr->control_progress = FI_PROGRESS_MANUAL;
|
hints->domain_attr->control_progress = FI_PROGRESS_MANUAL;
|
||||||
hints->domain_attr->resource_mgmt = FI_RM_ENABLED;
|
}
|
||||||
|
|
||||||
|
if (MTL_OFI_PROG_MANUAL == data_progress) {
|
||||||
|
hints->domain_attr->data_progress = FI_PROGRESS_MANUAL;
|
||||||
|
} else {
|
||||||
|
hints->domain_attr->data_progress = FI_PROGRESS_AUTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MTL_OFI_AV_TABLE == av_type) {
|
||||||
|
hints->domain_attr->av_type = FI_AV_TABLE;
|
||||||
|
} else {
|
||||||
hints->domain_attr->av_type = FI_AV_MAP;
|
hints->domain_attr->av_type = FI_AV_MAP;
|
||||||
|
}
|
||||||
|
|
||||||
|
hints->domain_attr->resource_mgmt = FI_RM_ENABLED;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FI_VERSION provides binary backward and forward compatibility support
|
* FI_VERSION provides binary backward and forward compatibility support
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user