[ofa-general] performance to call ibv_poll_cq() vs. call select() on completion channel
Tang, Changqing
changquing.tang at hp.com
Wed Sep 2 16:00:11 PDT 2009
Sean:
I understand that ops.poll_cq is actually ibv_cmd_poll_cq(), right ?
Do you mean during ibv_poll_cq() call, there is no system call involved ?
--CQ
> -----Original Message-----
> From: Sean Hefty [mailto:sean.hefty at intel.com]
> Sent: Wednesday, September 02, 2009 5:25 PM
> To: Tang, Changqing; tziporet at dev.mellanox.co.il
> Cc: general at lists.openfabrics.org
> Subject: RE: [ofa-general] performance to call ibv_poll_cq()
> vs. call select() on completion channel
>
> >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