[openib-general] error return values from userspace calls
Pete Wyckoff
pw at osc.edu
Sat Aug 5 15:39:30 PDT 2006
mst at mellanox.co.il wrote on Sat, 05 Aug 2006 23:46 +0300:
> Quoting r. Pete Wyckoff <pw at osc.edu>:
> > Then there's ibv_poll_cq that returns +npolled on sucess, -1 on
> > empty, -2 on error. Why not EAGAIN instead of these custom codes?
>
> Seems like thre's some mistake.
> Should be 0 on empty, -1 on error (I'm not sure there *can* be an error from
> ibv_poll_cq, need to look it up).
Oh, you're right of course. 0 on empty, but perhaps -2 on error.
I saw this in libmthca/src/cq.c and jumped to the conclusion that
empty == -1:
enum {
CQ_OK = 0,
CQ_EMPTY = -1,
CQ_POLL_ERR = -2
};
But CQ_EMPTY never propagates back to the user. However,
mthca_poll_cq does:
return err == CQ_POLL_ERR ? err : npolled;
which returns the -2.
amso_poll_cq uses ibv_cmd_poll_cq, which returns -1 on failed
userspace malloc (but nothing in errno), -1 and errno for some
kernel interface problem, 0 for empty, or +npolled on success.
-- Pete
More information about the general
mailing list