Thread (1 message) 1 message, 1 author, 2018-01-31

Re: ib_create_qp failing

From: Leon Romanovsky <hidden>
Date: 2018-01-31 13:58:15

On Tue, Jan 30, 2018 at 10:30:13AM +0200, Joel Nider wrote:
Hi Mark,

Mark Bloch [off-list ref] wrote on 29/01/2018 22:47:04:
quoted
quoted
I am using ConnectX5 EN with special firmware (I just mention it so
you
quoted
quoted
know, but I'm pretty sure that's not the problem).  I have used
dynamic
quoted
quoted
debug - it shows me that the call is failing like this:

mlx5_core 0000:01:00.0: mlx5_cmd_check:714:(pid 120772):
CREATE_QP(0x500)
quoted
quoted
op_mod(0x0) failed, status bad parameter(0x3), syndrome (0x48b5c0)
The syndrome means: "create_qp: invalid service type for RoCE"
what QP type are you trying to create and with what parameters?
I'm trying to create an RC connection - here is an outline of my code:
In module_init(): ib_register_client() -> registers callback
on_device_add()
On_device_add(): I only have one device (mlx5_0) and I save the ib_device*
to a linked list
From sysfs, a user writes the name (string) of the device to use - this
starts the setup procedure
ib_register_event_handler(rpf_ib_qp_event_handler)
ib_query_port(dev, 1) -> state=4 max_mtu=4096 active_mtu=1024 gid_len=256
caps=0x4010000
ib_create_cq() -> rx completion queue
ib_create_cq() -> tx completion queue
ib_alloc_pd() -> the protection domain
ib_create_qp() with:

        struct ib_qp_init_attr qp_attr = {
                .event_handler = rpf_ib_qp_event_handler,
                .qp_context = res,
                .send_cq = res->tx_cq,
                .recv_cq = res->rx_cq,
                .srq = NULL,
                .cap = {
                        .max_send_wr = 16,
                        .max_recv_wr = 48,
                        .max_send_sge = 2,
                        .max_recv_sge = 1,
                },
                .sq_sig_type = IB_SIGNAL_REQ_WR,
                .qp_type = IB_QPT_RC,
        };

Fails with the code I mentioned earlier.  This used to fail even earlier
until I discovered that ib_query_port() has some interesting side effects,
and is mandatory. Maybe there is some other function that I need to call
to set up some state first?
We strongly recommend you to contact the customer support
representative, because you are getting FW error from custom FW.

Thanks

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help