Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Aug 2016 22:36:33 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Alex Bowden <alex.bowden@outlook.com>, "freebsd-infiniband@freebsd.org" <freebsd-infiniband@freebsd.org>
Subject:   Re: Set non blocking on /dev/rdma_cm
Message-ID:  <3a373d74-9822-ed46-2788-fbc8d169a8a6@selasky.org>
In-Reply-To: <DM2PR05MB75118A2E53E97548A432608F7130@DM2PR05MB751.namprd05.prod.outlook.com>
References:  <DM2PR05MB75118A2E53E97548A432608F7130@DM2PR05MB751.namprd05.prod.outlook.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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
>   ..snip..
>
>   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.

Hi Alex,

I'll check the code tomorrow.

Quick answer:
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.

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3a373d74-9822-ed46-2788-fbc8d169a8a6>