[ofa-general] How ot support LL QP for ehca

Hoang-Nam Nguyen HNGUYEN at de.ibm.com
Wed Mar 26 10:16:57 PDT 2008


Hello Roland, Or and Jack!
Creating a new thread because we need besides the QP_CREATE_LL flag say
two other flags like below:
QP_CREATE_LL_SND_COMP means you want to get send completions
QP_CREATE_LL_RCV_COMP means you want to get recv completions

Basically LL QP works in the way that you put the payload directly
into the queue instead specifying it via sges.
While you always get recv completions for normal QP, you can suppress
that for LL QP and check a certain pattern in the queue mem by yourself.
That's the reason why we've those two flags when creating a LL QP.

Above example is one option to add those flags in ib_verbs.h

Another one is to enhance enum ib_sig_type with eg.
      IB_SIGNAL_SND_WR,
      IB_SIGNAL_RCV_WR,
      IB_SIGNAL_NONE
/* last one could be encoded like IB_SIGNAL_REQ_WR */
Look at struct ib_init_qp_attr I see
      enum ib_sig_type  sq_sig_type;
That means it is thought for send only. Using sq_sig_type for LL QP
without renaming the field name is misleading to me.

The 3rd option is to introduce a new field like rq_sig_type.

Thus, the first option would not break older libibverbs. The last two
will.

What is your preferred way? Other comments?

Appreciate your help!

Nam




More information about the general mailing list