S. Salman
S. Salman

Reputation: 610

Issue with ibv_poll_cq() & ib_poll_cq()

Client Side:

ib_poll_cq(cq,1,&wc){
    if(wc.status == IB_WC_SUCCESS) 
        printk("Successful\n");
    else
        printk("Failure: %d\n", wc.status);
}

Server Side:

do {
   num_comp = ibv_poll_cq(s_ctx.recv_cq, 1, &wc);
} while (num_comp == 0);

The client side is written in kernel space and server side is written in user Space. The wc.status returns 12. What could be possible issues with this?

Upvotes: 0

Views: 1225

Answers (1)

haggai_e
haggai_e

Reputation: 4820

A value of 12 in wc.status means the retry exceeded error has occurred. This means the node that saw the error (let's call it local) has tried sending or performing an RDMA operation and did not get a response from the other node. This can happen if the remote QP wasn't set up correctly to be in RTR state with its parameters matching the local QP's parameters.

You can find some details about the various ibv_wc codes in this blog post.

Upvotes: 3

Related Questions