Message ID | 20180816090604.3970-1-marcel.apfelbaum@gmail.com |
---|---|
State | New |
Headers | show |
Series | config: split PVRDMA from RDMA | expand |
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
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
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(-)