diff --git a/man/man7/fi_gni.7 b/man/man7/fi_gni.7 index 00bbf0fcddc..17cf2e75fd4 100644 --- a/man/man7/fi_gni.7 +++ b/man/man7/fi_gni.7 @@ -1,4 +1,4 @@ -.TH "fi_gni" "7" "2017\-03\-01" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@" +.TH "fi_gni" "7" "2017\-03\-15" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@" .SH NAME .PP The GNI Fabric Provider @@ -250,6 +250,15 @@ GNIX_FAB_RQ_NAMO_AX_S (AND and XOR 32 bit), GNIX_FAB_RQ_NAMO_FAX (Fetch AND and XOR) and GNIX_FAB_RQ_NAMO_FAX_S (Fetch AND and XOR 32 bit). .SH NOTES .PP +The default address format is FI_ADDR_GNI. +This is the only address format used within the GNI provider for message +passing. +FI_ADDR_STR is always parsed and converted to FI_ADDR_GNI for use within +the GNI provider. +.PP +\f[I]FI_ADDR_STR\f[] is formatted as follows: +gni;node;service;GNIX_AV_STR_ADDR_VERSION;device_addr;cdm_id;name_type;cm_nic_cdm_id;cookie;rx_ctx_cnt +.PP The GNI provider sets the domain attribute \f[I]cntr_cnt\f[] to the the CQ limit divided by 2. .SH SEE ALSO diff --git a/prov/bgq/src/fi_bgq_init.c b/prov/bgq/src/fi_bgq_init.c index 0664fc0d003..cb9d2334e0c 100644 --- a/prov/bgq/src/fi_bgq_init.c +++ b/prov/bgq/src/fi_bgq_init.c @@ -278,9 +278,18 @@ static int fi_bgq_getinfo(uint32_t version, const char *node, if (!((FI_BGQ_FABRIC_DIRECT_PROGRESS == FI_PROGRESS_MANUAL) || (FI_BGQ_FABRIC_DIRECT_PROGRESS == FI_PROGRESS_AUTO))){ fprintf(stderr,"BGQ Provider must be configured with either auto or manual progresss mode specified\n"); + exit(1); assert(0); } + BG_JobCoords_t jobCoords; + uint32_t jcrc = Kernel_JobCoords(&jobCoords); + if (jobCoords.isSubBlock) { + fprintf(stderr,"BGQ Provider cannot be run in a sub-block.\n"); + fflush(stderr); + exit(1); + } + int ret; struct fi_info *fi, *prev_fi, *curr; diff --git a/prov/gni/src/gnix_fabric.c b/prov/gni/src/gnix_fabric.c index 6a06bed50ec..64399b88ad2 100644 --- a/prov/gni/src/gnix_fabric.c +++ b/prov/gni/src/gnix_fabric.c @@ -393,6 +393,20 @@ static int _gnix_ep_getinfo(enum fi_ep_type ep_type, uint32_t version, if (!gnix_info) return -FI_ENOMEM; + if (hints->addr_format == FI_ADDR_STR) { + gnix_info->addr_format = FI_ADDR_STR; + /* TODO: uncomment the ifdef below after the 1.5 release */ +#if 0 + if (!FI_VERSION_GE(version, FI_VERSION(1, 5))) { + GNIX_WARN(FI_LOG_FABRIC, "FI_ADDR_STR is only " + "supported in api versions >= 1.5 but the " + "current api version is: %u.%u", + FI_MAJOR(version), FI_MINOR(version)); + goto err; + } +#endif + } + gnix_info->ep_attr->type = ep_type; if (hints) {