From ee108585bb1924a8df88188925d0d01b90b4b9e8 Mon Sep 17 00:00:00 2001 From: Yuval Shaia Date: Sun, 18 Aug 2019 16:21:06 +0300 Subject: [PATCH] configure: Check if we can use ibv_reg_mr_iova The function reg_mr_iova is an enhanced version of ibv_reg_mr function that can help to easly register and use guest's MRs. Add check in 'configure' phase to detect if we have libibverbs with this support. Signed-off-by: Yuval Shaia Reviewed-by: Marcel Apfelbaum Message-Id: <20190818132107.18181-2-yuval.shaia@oracle.com> Signed-off-by: Marcel Apfelbaum --- configure | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/configure b/configure index 72553f98ea..efe165edf9 100755 --- a/configure +++ b/configure @@ -3217,6 +3217,34 @@ else pvrdma="no" fi +# Let's see if enhanced reg_mr is supported +if test "$pvrdma" = "yes" ; then + +cat > $TMPC < + +int +main(void) +{ + struct ibv_mr *mr; + struct ibv_pd *pd = NULL; + size_t length = 10; + uint64_t iova = 0; + int access = 0; + void *addr = NULL; + + mr = ibv_reg_mr_iova(pd, addr, length, iova, access); + + ibv_dereg_mr(mr); + + return 0; +} +EOF + if ! compile_prog "" "-libverbs"; then + QEMU_CFLAGS="$QEMU_CFLAGS -DLEGACY_RDMA_REG_MR" + fi +fi + ########################################## # VNC SASL detection if test "$vnc" = "yes" && test "$vnc_sasl" != "no" ; then