Hi
I wish to know is it possible to wait for both send and receive CQ notification at a given point of time.
Let me explain my query with a code snippet below:

1.  create send and receive cq for a given channel as below:

+++++++++++++++++++++++++++++++++++++++++++++++
   ctx->ch = ibv_create_comp_channel(ctx->context);
   if (!ctx->ch) {
       fprintf(stderr, "Couldn't create comp channel\n");
       return NULL;
   }

  /* Recv CQ */
   ctx->rcq = ibv_create_cq(ctx->context, 1, ctx, ctx->ch, 0);
   if (!ctx->rcq) {
       fprintf(stderr, "Couldn't create recv CQ\n");
       return NULL;
   }

  /* Send CQ */
   ctx->scq = ibv_create_cq(ctx->context, 1, ctx, ctx->ch, 0);
   if (!ctx->scq) {
       fprintf(stderr, "Couldn't create send CQ\n");
       return NULL;
   }

   /* Request  send notification before any completion can be created */
   if (ibv_req_notify_cq(ctx->scq, 0)) {
           fprintf(stderr, "Couldn't request CQ notification\n");
           return 1;
   }

   /* Request  receive notification before any completion can be created */
   if (ibv_req_notify_cq(ctx->rcq, 0)) {
           fprintf(stderr, "Couldn't request CQ notification\n");
           return 1;
   }
++++++++++++++++++++++++++++++++++++++++++++++

2. wait for a CQ event after concurrent post_send and post_recv operation and identify if the CQ event is for send or receive

++++++++++++++++++++++++++++++++++++++++++++++++
   /* Wait for the completion event */
   if (ibv_get_cq_event(channel, &ev_cq, &ev_ctx)) {
           fprintf(stderr, "Failed to get cq_event\n");
           return 1;
   }

  if (ev_cq == ctx->rcq)
      printf(" receive cq event ...");
  else if (ev_cq == ctx->scq)
        printf(" send cq event ...");
  else
       printf(" ERROR in identifying notification ...")

   /* Ack the event */
   ibv_ack_cq_events(ev_cq, 1);
+++++++++++++++++++++++++++++++++++++++++++++++++++++


Please let me know if the mechanism (shown in code snippet above) for identifying the event posted on ibv_get_cq_event(..) is send or receive is correct.
Also, i welcome any other suggestions for the same.

Regards,
Prasanna




_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to