[openib-general] [RFC] [PATCH] SRQ API

Fab Tillier ftillier at silverstorm.com
Wed Jun 15 14:17:49 PDT 2005


> From: Roland Dreier [mailto:roland at topspin.com]
> Sent: Wednesday, June 15, 2005 1:43 PM
> 
> Here's a first stab at the changes to the API in <ib_verbs.h> required
> to support shared receive queues (SRQs).  SRQs are described in
> version 1.2 of the IBA spec; specifically, sections 10.2.9 and 11.2.3
> describe the semantics and verbs interface.

I'm a bit confused still about how WR get processed.  If a QP goes to the error
state, does it pull all WRs off of the SRQ?  I would expect not.

How does one flush WRs from an SRQ?  It seems that to use an SRQ, the user has
to keep a parallel list of all WRs posted to track them so they may be properly
freed when the SRQ is destroyed.  This also means the completion path now must
be serialized with the requesting path so that accesses to this tracking list
are properly synchronized.

> 
> I did diverge from the spec in that instead of a single "Post Receive
> Request" verb, there are separate ib_post_recv() and
> ib_post_srq_recv() functions.  This avoids complications from having a
> polymorphic function that takes either a QP or an SRQ, and matches the
> interface Mellanox used in VAPI.

This sounds sane.

- Fab




More information about the general mailing list