[ewg] retry_cnt, rnr_retry and ibv_get_cq_event/ibv_req_notify_cq

Albert Strasheim fullung at gmail.com
Mon Apr 19 05:46:25 PDT 2010


Hello all

I am writing an application on top of libverbs, but I've noticed two
strange things.

I've attached an example application that sets up a RC QP, connects it
to itself and posts a bunch of sends for which no receives have been
posted.

If retry_cnt and rnr_retry are set to 7 (toggle the RETRY_COUNT
#define at the top of the example code) as lots of documentation and
examples suggest, I never get any events in my CQ. Setting it to
another value, e.g. 6 causes the appropriate WCs to be generated.

By the way, what are the "units" of min_rnr_timer and timeout?

Furthermore, I was wondering if there is a way to use
ibv_get_cq_event/ibv_req_notify_cq to do a non-blocking poll for CQ
events? I have the option in the attached code, but I've found that I
miss some CQ events, for example, when posting 100 sends, I will only
get back about 3--5 WCs containing error statuses. If I poll, I get
all the WCs.

I'm using libibverbs-1.1.3-3.fc12.x86_64 on Fedora Core 12.

Thanks!

Regards

Albert

P.S. To compile the attached code, use:

g++ -o ibrnr.o -c -ggdb -Wall -ansi -pedantic -O2 ibrnr.cpp
g++ -o ibrnr ibrnr.o -libverbs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ibrnr.cpp
Type: application/octet-stream
Size: 7344 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20100419/e7fdbda0/attachment.obj>


More information about the ewg mailing list