Roland Dreier wrote:
ardavis> Redhat EL 4.0, 64-bit
OK, I found a system with that distro installed, although I can't test the results of the build. However, I built libmthca with the same CFLAGS that rpm seems to use, namely "-g -O2 -m64 -pipe". I found that mthca_tavor_arm_cq() compiles to the following tiny fragment:
0000000000001d10 <mthca_tavor_arm_cq>: 1d10: 48 8b 07 mov (%rdi),%rax 1d13: 48 8b 90 a8 ef ff ff mov 0xffffffffffffefa8(%rax),%rdx 1d1a: 48 8b 44 24 f8 mov 0xfffffffffffffff8(%rsp),%rax 1d1f: 48 89 42 20 mov %rax,0x20(%rdx) 1d23: 31 c0 xor %eax,%eax 1d25: c3 retq
in other words, the compiler seems to be discarding all the assignments to doorbell[0] and doorbell[1]. I'm not sure if this is a compiler bug or what -- I need to investigate further. In any case can you try the following patch to libmthca and see if it fixes things:
Index: src/cq.c =================================================================== --- src/cq.c (revision 2156) +++ src/cq.c (working copy) @@ -441,6 +441,8 @@ int mthca_tavor_arm_cq(struct ibv_cq *cq to_mcq(cq)->cqn); doorbell[1] = 0xffffffff;
+ mb(); + mthca_write64(doorbell, to_mctx(cq->context), MTHCA_CQ_DOORBELL);
return 0;
Yes, this fixes my problem. Thanks! _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
