[ofa-general] Re: Is ibv_get_async_event() a blocking call ?

Tang, Changqing changquing.tang at hp.com
Fri Mar 2 14:48:30 PST 2007


Roland:
	Back to my orignal question, if I don't call
ibv_get_async_event() for a long time, and there are a lot of events
generated during the time, do I loss any event when I eventually call
ibv_get_async_event() ?

	(another way, how many events can you queue ) ?

--CQ


 

> -----Original Message-----
> From: Roland Dreier [mailto:rdreier at cisco.com] 
> Sent: Friday, March 02, 2007 4:30 PM
> To: Steve Wise
> Cc: Tang, Changqing; General at lists.openfabrics.org
> Subject: Re: [ofa-general] Re: Is ibv_get_async_event() a 
> blocking call ?
> 
>  > > I wonder if libibverbs can do this way for application 
> and make  > > ibv_get_async_event() non-blocking. But I will 
> try this way now.
>  > >
>  >
>  > I wonder what happens if you set the async file descriptor 
> to  > non-blocking?
>  >
>  > Roland?  Would that return EWOULDBLOCK if there are no events?
> 
> Yes, as you can see if you look at the libibverbs internals,
> ibv_get_async_event() is just doing read() on a file 
> descriptor.  So all the standard ways of handling finding out 
> whether the descriptor is ready to read should work: block in 
> read(), use poll(), epoll, SIGIO, async IO, etc.  And using 
> fcntl to set the descriptor to non-blocking mode would work too.
> 
>  - R.
> 



More information about the general mailing list