pmem / rpma

Remote Persistent Memory Access Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FEAT: an alternative approach to get the latest work completion directly from rpma_conn_wait() [DRAFT]

grom72 opened this issue · comments

FEAT: an alternative approach to get the latest work completion directly from rpma_conn_wait()

Rationale

Every time the rpma_conn_wait() returns 0

rpma/src/conn.c

Line 257 in a8cfd6d

return 0;

the rpma_cq_get_wc() must be called to get the work completion.
Both operations can be combined within one API call.

Description

The new semantic of the rpma_conn_wait() can be as follow:

int rpma_conn_wait(struct rpma_conn *conn, struct ibv_wc *wc, bool *is_rcq);

The function waits for a completion event and returns work completion related to it.
If an event has been reported by ibv_get_cq_event() but completion can not be read via ibv_poll_cq() the function will wait for another completion event.

No longer valid as rpma_cq_get_wc() may read more than one ibv_wc.