[ofa-general] performance to call ibv_poll_cq() vs. call select() on completion channel

Sean Hefty sean.hefty at intel.com
Wed Sep 2 15:25:08 PDT 2009


>But I just check the source code, ibv_poll_cq() is actually ibv_cmd_poll_cq(),
>and ibv_cmd_poll_cq() calls write() system call on the IB device.
>
>Doesn't this write() system call switch to kernel mode and possiblely casuse
>a context switch ?

See verbs.h:

static inline int ibv_poll_cq(struct ibv_cq *cq, int num_entries, struct ibv_wc
*wc)
{
        return cq->context->ops.poll_cq(cq, num_entries, wc);
}

The userspace provider library sets poll_cq to an internal call.

- Sean




More information about the general mailing list