Thanks! I've filed https://github.com/open-mpi/ompi/issues/1607 to follow up.
> On Apr 29, 2016, at 6:43 AM, Håkon Bugge <hakon.bu...@gmail.com> wrote: > > With patch > https://github.com/torvalds/linux/commit/e15f431fe2d53cd4673510736da7d4fa1090e096, > the use of ENOSYS has been clarified. > > /* > * This error code is special: arch syscall entry code will return > * -ENOSYS if users try to call a syscall that doesn't exist. To keep > * failures of syscalls that really do exist distinguishable from > * failures due to attempts to use a nonexistent syscall, syscall > * implementations should refrain from returning -ENOSYS. > */ > #define ENOSYS 38 /* Invalid system call number */ > > > Now, legacy HCA drivers returns ENOSYS, for example the mlx4 driver. > > Open MPI adheres to this, see for example the following code snippet: > > #ifdef HAVE_IBV_RESIZE_CQ > else if (cq_size > mca_btl_openib_component.ib_cq_size[cq]){ > int rc; > rc = ibv_resize_cq(device->ib_cq[cq], cq_size); > /* For ConnectX the resize CQ is not implemented and verbs returns > -ENOSYS > * but should return ENOSYS. So it is reason for abs */ > if(rc && ENOSYS != abs(rc)) { > BTL_ERROR(("cannot resize completion queue, error: %d", rc)); > return OPAL_ERROR; > } > } > #endif > > Modern HCA drivers cannot return ENOSYS in this case, because they will not > pass checkpatch.pl. See the following patch: > > https://github.com/torvalds/linux/commit/91c9afaf97ee554d2cd3042a5ad01ad21c99e8c4 > > Hence, my humble request is that Open MPI also checks for EOPNOTSUPP (the > choice of error code can of course be discussed) wherever it checks for > ENOSYS. > > > Thxs, Håkon > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2016/04/18839.php -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/