configure | 41 ++++++++++++++++++++++++++++++++++++++++- hw/rdma/Makefile.objs | 2 +- 2 files changed, 41 insertions(+), 2 deletions(-)
In some BSD systems RDMA migration is possible while
the pvrdma device can't be compiled because the mremap
system call is missing.
Reported-by: Rebecca Cran <rebecca@bluestop.org>
Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
---
configure | 41 ++++++++++++++++++++++++++++++++++++++++-
hw/rdma/Makefile.objs | 2 +-
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 2a7796ea80..92591302d7 100755
--- a/configure
+++ b/configure
@@ -375,6 +375,7 @@ hax="no"
hvf="no"
whpx="no"
rdma=""
+pvrdma=""
gprof="no"
debug_tcg="no"
debug="no"
@@ -1363,6 +1364,10 @@ for opt do
;;
--disable-rdma) rdma="no"
;;
+ --enable-pvrdma) pvrdma="yes"
+ ;;
+ --disable-pvrdma) pvrdma="no"
+ ;;
--with-gtkabi=*) gtkabi="$optarg"
;;
--disable-vte) vte="no"
@@ -1669,7 +1674,8 @@ disabled with --disable-FEATURE, default is enabled if available:
hax HAX acceleration support
hvf Hypervisor.framework acceleration support
whpx Windows Hypervisor Platform acceleration support
- rdma Enable RDMA-based migration and PVRDMA support
+ rdma Enable RDMA-based migration
+ pvrdma Enable PVRDMA support
vde support for vde network
netmap support for netmap network
linux-aio Linux AIO support
@@ -3064,6 +3070,34 @@ EOF
fi
fi
+##########################################
+# PVRDMA detection
+
+if test "$rdma" = "yes" ; then
+ case "$pvrdma" in
+ "")
+ if test "$bsd" = "yes"; then
+ pvrdma="no"
+ else
+ pvrdma="yes"
+ fi
+ ;;
+ "yes")
+ if test "$bsd" = "yes"; then
+ error_exit "PVRDMA is not supported for bsd"
+ fi
+ pvrdma="yes"
+ ;;
+ "no")
+ pvrdma="no"
+ ;;
+ esac
+else
+ if test "$pvrdma" = "yes" ; then
+ error_exit "PVRDMA requires rdma suppport"
+ fi
+ pvrdma="no"
+fi
##########################################
# VNC SASL detection
@@ -5952,6 +5986,7 @@ if test "$tcg" = "yes" ; then
fi
echo "malloc trim support $malloc_trim"
echo "RDMA support $rdma"
+echo "PVRDMA support $pvrdma"
echo "fdt support $fdt"
echo "membarrier $membarrier"
echo "preadv support $preadv"
@@ -6708,6 +6743,10 @@ if test "$rdma" = "yes" ; then
echo "RDMA_LIBS=$rdma_libs" >> $config_host_mak
fi
+if test "$pvrdma" = "yes" ; then
+ echo "CONFIG_PVRDMA=y" >> $config_host_mak
+fi
+
if test "$have_rtnetlink" = "yes" ; then
echo "CONFIG_RTNETLINK=y" >> $config_host_mak
fi
diff --git a/hw/rdma/Makefile.objs b/hw/rdma/Makefile.objs
index 3504c39d21..bd36cbf51c 100644
--- a/hw/rdma/Makefile.objs
+++ b/hw/rdma/Makefile.objs
@@ -1,4 +1,4 @@
-ifeq ($(CONFIG_RDMA),y)
+ifeq ($(CONFIG_PVRDMA),y)
obj-$(CONFIG_PCI) += rdma_utils.o rdma_backend.o rdma_rm.o
obj-$(CONFIG_PCI) += vmw/pvrdma_dev_ring.o vmw/pvrdma_cmd.o \
vmw/pvrdma_qp_ops.o vmw/pvrdma_main.o
--
2.17.1
On 08/16/2018 11:06 AM, Marcel Apfelbaum wrote: > In some BSD systems RDMA migration is possible while > the pvrdma device can't be compiled because the mremap > system call is missing. > > Reported-by: Rebecca Cran <rebecca@bluestop.org> > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > --- > configure | 41 ++++++++++++++++++++++++++++++++++++++++- > hw/rdma/Makefile.objs | 2 +- > 2 files changed, 41 insertions(+), 2 deletions(-) [...] > diff --git a/hw/rdma/Makefile.objs b/hw/rdma/Makefile.objs > index 3504c39d21..bd36cbf51c 100644 > --- a/hw/rdma/Makefile.objs > +++ b/hw/rdma/Makefile.objs > @@ -1,4 +1,4 @@ > -ifeq ($(CONFIG_RDMA),y) > +ifeq ($(CONFIG_PVRDMA),y) > obj-$(CONFIG_PCI) += rdma_utils.o rdma_backend.o rdma_rm.o > obj-$(CONFIG_PCI) += vmw/pvrdma_dev_ring.o vmw/pvrdma_cmd.o \ > vmw/pvrdma_qp_ops.o vmw/pvrdma_main.o Shouldn't just the second line be guarded by CONFIG_PVRDMA ? Thomas
On 16 August 2018 at 10:06, Marcel Apfelbaum <marcel.apfelbaum@gmail.com> wrote: > In some BSD systems RDMA migration is possible while > the pvrdma device can't be compiled because the mremap > system call is missing. > > Reported-by: Rebecca Cran <rebecca@bluestop.org> > Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > +########################################## > +# PVRDMA detection > + > +if test "$rdma" = "yes" ; then > + case "$pvrdma" in > + "") > + if test "$bsd" = "yes"; then > + pvrdma="no" > + else > + pvrdma="yes" > + fi Please don't do tests against "which host OS is this?" unless there is absolutely no other option. Prefer to test for presence/absence of specific features (eg "do we have mremap()?". Otherwise you're likely to give the wrong answer for other host OSes we have support for (Haiku, Solaris) or other host OSes we add in future. thanks -- PMM
© 2016 - 2025 Red Hat, Inc.