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

Michael S. Tsirkin mst at dev.mellanox.co.il
Tue Mar 20 00:25:39 PDT 2007


> Quoting Roland Dreier <rdreier at cisco.com>:
> Subject: Re: Re: Re: Is ibv_get_async_event() a blocking call ?
> 
>  > Should we add a size parameter for event channels?
>  > And, we might need to add "event channel overrun" flag as well.
>  > 
>  > If we want to address the problem in this way, we need to do this before
>  > libibverbs 1.1 freezes I think.
> 
> I think since no one is hitting this in practice we can take our time
> here and get it right.

Right.
Here's an idea how to do this without userspace changes:
upon a completion event, if a completion event for the same
CQ is outstanding, we can discard the new one as it does not
add new information.
Similiar tricks can be done with port state events etc.

Now we can have a limit of number of outstanding events per context,
and if some context violates this limit, queue new events in kernel
without using potentially infinite memory.

-- 
MST



More information about the general mailing list