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/

Reply via email to