[openib-general] question about poll_cq()

Joerg Zinke umaxx at oleco.net
Wed Oct 26 03:00:02 PDT 2005


On Tue, 25 Oct 2005 09:19:25 -0700
Roland Dreier <rolandd at cisco.com> wrote:
> 
> A very brief sketch of what happens is that the device-specific
> implementation of CQs for Mellanox HCAs allocates a circular buffer in
> memory and passes the address to the hardware.  The buffer is divided
> into fixed-size chunks, each of which represents one completion entry.
> Initially the buffer is cleared out, and every time the hardware adds
> an entry onto the completion queue, it sets a bit in that chunk to
> show that the entry is now valid.  The driver polls the CQ by looking
> to see if the next chunk has the bit set.  If it does, then the driver
> translates the entry from hardware format into standard struct ibv_wc
> format; if it doesn't, then the driver returns status indicating that
> the CQ is empty.
> 
> Completion queues are always located in local system memory.
> 
>  - R.
> 

thanks for your reply. that's all i wanted to know.

joerg



More information about the general mailing list