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

Tziporet Koren tziporet at dev.mellanox.co.il
Wed Sep 2 13:10:09 PDT 2009


Tang, Changqing wrote:
> Roland or Mellanox Engineers:
>
> 	We setup completion channel for a completion queue. We want to check if there is any
> event available, and suppose there is NO event on both completion channel and completion queue.
>
> 	What we can do is:
>
> 	1. call select() on completion channel with zero timeout and return 0.
> 	2. call ibv_poll_cq() directly and return 0.
>
> Question:
>
> 	Which way has lower overhead ? 
ibv_poll_cq
>   We know select() has to switch to kernel mode, does ibv_poll_cq()
> switch to kernel mode and may cause a context switch ?
>   
No - it's pure user space function

Tziporet



More information about the general mailing list