[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