[openib-general] ib_req_ncomp_notif in core_ layer

Fab Tillier ftillier at infiniconsys.com
Thu Aug 12 06:53:43 PDT 2004


> From: Michael S. Tsirkin [mailto:mst at mellanox.co.il]
> Sent: Wednesday, August 11, 2004 11:47 PM
> 
> Quoting r. Fab Tillier (ftillier at infiniconsys.com) "RE: [openib-general]
> ib_req_ncomp_notif in core_ layer":
> > > From: Sean Hefty [mailto:mshefty at ichips.intel.com]
> > > Sent: Wednesday, August 11, 2004 2:52 PM
> > >
> > > On Thu, 12 Aug 2004 00:23:40 +0300
> > > "Michael S. Tsirkin" <mst at mellanox.co.il> wrote:
> > >
> > > > Currently some things are unclear:
> > > >
> > > > If you get an event and do req_comp_notif
> > > > immediately, without polling - do you expect to get an event
> > > > immediately?
> > >
> > > The call for ib_req_notify_cq() is intended to map to the semantics
> > > mentioned in the spec.  For the example mentioned, calling
> > > ib_req_notify_cq() without polling arms the CQ, but will not generate
> > > an
> > > event until a new completion of the specified type is added to the CQ.
> >
> > True, but as has been pointed out before, Tavor by default will generate
> > a new CQ event if any completions are left unreaped in the CQ (or
> > something to that effect).  See
> > http://openib.org/pipermail/openib-general/2004-June/003099.html.  So
> > rearming without polling *will* generate a CQ event if you're using
> > Mellanox HCAs.
> 
> Nope, sorry. Tavor will generate an event if completion are generated
> *after the event was generated*.
> 
> So
>    arm
>    completion
>    event
>    arm    <-- no event
> 
> But
> 
>    arm
>    completion
>    event
>    completion
>    arm    <-- event
> 
> Thus you can do
>    poll -> rearm
> and also
>    rearm -> poll
> 
> and get the same result without races.
> 

Great feedback!  I think this makes a lot of sense, and I appreciate the
clarification.  I had been somewhat confused by the previous explanations.

- Fab





More information about the general mailing list