Hi Hal, On 12:37 Mon 21 Jul , Hal Rosenstock wrote: > > or directory) > > [EMAIL PROTECTED] ~]# perfquery > > ibpanic: [3926] madrpc_init: can't open UMAD port ((null):0): (No such file > > or directory) > > [EMAIL PROTECTED] ~]# > > This sounds like an additional aspect of the libibumad API issue > introduced when some functionality related to this was eliminated. The > previous fix related to OpenSM appears to not be the complete solution > to these mixed configurations.
I think you are referring changes which were done in OpenSM ibumad vendor layer, specifically commits 5cf395cb107ef76091d554cd4b42456dc53b38a2 and 36cfd8e6967d8a7aea74b9a180fac0275ef549dd and had nothing to do with libibumad API. Regarding to an issue itself. Steve, does something like this: diff --git a/libibumad/src/umad.c b/libibumad/src/umad.c index dcc7275..9010307 100644 --- a/libibumad/src/umad.c +++ b/libibumad/src/umad.c @@ -499,6 +499,19 @@ umad_done(void) return 0; } +static unsigned is_ib_type(char *ca_name) +{ + char dir_name[256]; + unsigned type; + + snprintf(dir_name, sizeof(dir_name), "%s/%s", SYS_INFINIBAND, ca_name); + + if (sys_read_uint(dir_name, SYS_NODE_TYPE, &type) < 0) + return 0; + + return type >= 1 && type <= 3 ? 1 : 0; +} + int umad_get_cas_names(char cas[][UMAD_CA_NAME_LEN], int max) { @@ -512,7 +525,7 @@ umad_get_cas_names(char cas[][UMAD_CA_NAME_LEN], int max) for (i = 0; i < n; i++) { if (strcmp(namelist[i]->d_name, ".") && strcmp(namelist[i]->d_name, "..")) { - if (j < max) + if (j < max && is_ib_type(namelist[i]->d_name)) strncpy(cas[j++], namelist[i]->d_name, UMAD_CA_NAME_LEN); } helps? Sasha _______________________________________________ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg