Set non blocking on /dev/rdma_cm
Hans Petter Selasky
hps at selasky.org
Tue Aug 16 20:32:08 UTC 2016
On 08/16/16 22:23, Alex Bowden wrote:
> Hi all,
> I've modified rping to set O_NONBLOCKING on /dev/rdma_cm on the event channel (rdma_create_event_channel) which fails like this:
> 9997 rping CALL openat(AT_FDCWD,0x800a42708,0x100002<O_RDWR|O_CLOEXEC>,<unused>0)
> 9997 rping NAMI "/dev/rdma_cm"
> 9997 rping RET openat 3
> 9997 rping CALL fcntl(0x3,F_SETFL,0x6<O_RDWR|O_NONBLOCK>)
> 9997 rping RET fcntl -1 errno 25 Inappropriate ioctl for device
> Is this not supported for some reason? This is with the latest OFED v3.2 patches by Hans.
I'll check the code tomorrow.
F_SETFL should be translated into FIONBIO and FASYNC ioctls in the
FreeBSD kernel. Maybe there is a missing "case FIONBIO: return (0); /*
success */" somewhere in the /dev/rdma_cm implementation, because the
"fflags" handling is factored out, and only returning success on the
IOCTL is required.
More information about the freebsd-infiniband