Hi,
I am writing some rdma based programs using the Intel NetEffect iWARP NICs.
I am running into the following problems with my code -
1.
I can only set maximum work requests to 510 using rdma_create_qp, otherwise
it gives me an error – “libnes: nes_ucreate_qp Bad sq attr parameters
max_send_wr=511 max_send_sge=1.
Is there a way to increase this?”
2.
Is there a way to do RDMA writes without using a completion queue? I use an
alternative channel to determine if my work requests were correctly executed
or not. When I tried to do so I could send 510 (may be related to the
previous question) work requests successfully. After that ibv_post_send
returns 22. Repeatedly retrying ibv_post_send doesn’t seem to clear the
problem. It returns the same error code. Checked up the error code which
tells me invalid arguments.? Unable to make sense of this. Is there a way
to clean up the work requests in the system?
I am creating the queue pair with sq_sig_all = 0 in struct ibv_qp_init_attr
and am not setting setting IBV_SEND_SIGNALED in the send_flags member of
struct ibv_send_wr. This means I do not get any completion events. When
calling rdma_create_qp I initialize the send_cq and recv_cq of the struct
ibv_qp_init_attr with the completion queue created using ibv_create_cq (with
cge parameter same as cap.max_send_wr in struct ibv_qp_init_attr. (I think
that creating a completion queue is a must for creating an rdma queue pair -
pls correct me if I am wrong.)
Pls note – I do not get this problem when I poll completion queues (when
rdma queue pair is created with sq_sig_all = 0 && IBV_SEND_SIGNALED set in
the flag of the work requests to ibv_post_send)
Thanks,
Manoj Nambiar
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html