My understanding of this is that there's NO changes to the wire protocols.

A QP is simply that, a pair of queues - one send, one receive.  To the best 
that I can figure out, you're wanting to allocate 'multiple-queues' - something 
that has multiple send and receive queues.  (I use the term MQ, because it 
seems to be the most appropriate based on my understanding.)  A QP can be 
viewed as a special case of a MQ.  Is single QPN is used on the wire for all 
queues which are part of a MQ?  Like a QP, each queue can have its own size and 
CQ.  So, they're independent.. except that they're dependent on some higher 
association, (referred to as a parent QP).

The user has the joy of not knowing beforehand how many queues will be 
allocated.  Just that they need to somehow allocate them all, transition them 
all into a usable state, and keep all of them in that state.  The extra queues 
are allocated by the HW, but the user still needs to specify how big they are, 
how many SGEs each should have, etc.  I'm guessing specifying a size of 0 isn't 
acceptable if the user really doesn't want it.  But it would be okay if it went 
unused... maybe?  There's no mention of what happens if a user fails to 
allocate all queues, destroys one of the queues but keeps the others, or has 
the queues in different states - such as transitioning the 'parent' QP into the 
error state.  It's not even clear to me if the 'parent QP' has send and receive 
queues, or if it even should.

Honestly, I like to see the entire concept flushed out before trying to decide 
if the implementation matches up with what the architecture is trying to 
accomplish.  Maybe you end up with the same implementation, but there are 
details in the usage model that seem to be missing.  The email threads talk 
about UD, but wants to leave open the possibility of other QP types.  How would 
RC even work in this model?  How would it connect?  How do you manage 
associated QPs being in different states?  How would this export into user 
space?  How and when does the HW decide to direct receives to a specific queue?

- Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to