Sean, I was out of work so I tested the patch "librdmacm: lazy initialization for ib devices" today. The patch works fine for my test case. The only concern I have is that I think the patch might leak verbs context. I think that any call to ucma_init_device must be done with mutex locked. Please correct me if I am wrong.
Thanks, Shamir Signed-off-by: shamir rabinovitch <[email protected]> --- src/cma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cma.c b/src/cma.c index 0dc229e..42769cf 100644 --- a/src/cma.c +++ b/src/cma.c @@ -416,10 +416,13 @@ static int ucma_get_device(struct cma_id_private *id_priv, uint64_t guid) return ERR(ENODEV); match: - if ((ret = ucma_init_device(cma_dev))) + pthread_mutex_lock(&mut); + + if ((ret = ucma_init_device(cma_dev))) { + pthread_mutex_unlock(&mut); return ret; + } - pthread_mutex_lock(&mut); if (!cma_dev->refcnt++) { cma_dev->pd = ibv_alloc_pd(cma_dev->verbs); if (!cma_dev->pd) { -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
