[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