diff mbox series

[PATCH-for-5.2,v3] configure: Check vhost-user is available for vhost-user-blk-server

Message ID 20201109140730.2600017-1-philmd@redhat.com (mailing list archive)
State New, archived
Headers show
Series [PATCH-for-5.2,v3] configure: Check vhost-user is available for vhost-user-blk-server | expand

Commit Message

Philippe Mathieu-Daudé Nov. 9, 2020, 2:07 p.m. UTC
Check vhost-user is available when building vhost-user-blk-server.

This fixes:

 $ ../configure \
      --disable-vhost-user --enable-vhost-user-blk-server && \
   make qemu-nbd
 ...
 [505/505] Linking target qemu-nbd
 FAILED: qemu-nbd
 cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
 /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
 block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
 /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
 /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
 block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
 /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
 block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
 /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
 /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
 block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
 /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
 util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
 /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
 /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
 util/vhost-user-server.c:291: undefined reference to `vu_init'
 collect2: error: ld returned 1 exit status
 ninja: build stopped: subcommand failed.
 make: *** [Makefile:171: run-ninja] Error 1

Now we get:

 $ ../configure \
      --disable-vhost-user --enable-vhost-user-blk-server && \
 ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user

Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Since v1:
- Addressed Thomas review comments
https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
---
 configure | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Huth Nov. 9, 2020, 5:22 p.m. UTC | #1
On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
> Check vhost-user is available when building vhost-user-blk-server.
> 
> This fixes:
> 
>  $ ../configure \
>       --disable-vhost-user --enable-vhost-user-blk-server && \
>    make qemu-nbd
>  ...
>  [505/505] Linking target qemu-nbd
>  FAILED: qemu-nbd
>  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
>  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
>  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
>  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
>  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
>  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
>  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
>  util/vhost-user-server.c:291: undefined reference to `vu_init'
>  collect2: error: ld returned 1 exit status
>  ninja: build stopped: subcommand failed.
>  make: *** [Makefile:171: run-ninja] Error 1
> 
> Now we get:
> 
>  $ ../configure \
>       --disable-vhost-user --enable-vhost-user-blk-server && \
>  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
> 
> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> Since v1:
> - Addressed Thomas review comments
> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
> ---
>  configure | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/configure b/configure
> index 805f7791503..3124be82da1 100755
> --- a/configure
> +++ b/configure
> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
>  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
>    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
>  fi
> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
> +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
> +fi

A little bit later in this file, we've got :

# libvhost-user is Linux-only
test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
  error_exit "--enable-vhost-user-blk-server is only available on Linux"
fi

I think it would be better to add the new code there instead.
Also maybe better do something like:

test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
 &&  vhost_user_blk_server=$linux

instead?

 Thomas
Philippe Mathieu-Daudé Nov. 9, 2020, 6:41 p.m. UTC | #2
On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote:
> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
> > Check vhost-user is available when building vhost-user-blk-server.
> >
> > This fixes:
> >
> >  $ ../configure \
> >       --disable-vhost-user --enable-vhost-user-blk-server && \
> >    make qemu-nbd
> >  ...
> >  [505/505] Linking target qemu-nbd
> >  FAILED: qemu-nbd
> >  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
> >  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
> >  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
> >  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
> >  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
> >  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
> >  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
> >  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
> >  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
> >  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
> >  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
> >  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
> >  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
> >  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
> >  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
> >  util/vhost-user-server.c:291: undefined reference to `vu_init'
> >  collect2: error: ld returned 1 exit status
> >  ninja: build stopped: subcommand failed.
> >  make: *** [Makefile:171: run-ninja] Error 1
> >
> > Now we get:
> >
> >  $ ../configure \
> >       --disable-vhost-user --enable-vhost-user-blk-server && \
> >  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
> >
> > Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> > ---
> > Since v1:
> > - Addressed Thomas review comments
> > https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
> > ---
> >  configure | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/configure b/configure
> > index 805f7791503..3124be82da1 100755
> > --- a/configure
> > +++ b/configure
> > @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
> >  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
> >    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
> >  fi
> > +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
> > +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
> > +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
> > +fi
>
> A little bit later in this file, we've got :
>
> # libvhost-user is Linux-only
> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>   error_exit "--enable-vhost-user-blk-server is only available on Linux"
> fi
>
> I think it would be better to add the new code there instead.
> Also maybe better do something like:
>
> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
>  &&  vhost_user_blk_server=$linux
>
> instead?

I understood this option is similar to the other vhost-user related ones
and should be treated the same way.

>
>  Thomas
>
Thomas Huth Nov. 9, 2020, 6:44 p.m. UTC | #3
On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote:
> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote:
>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
>>> Check vhost-user is available when building vhost-user-blk-server.
>>>
>>> This fixes:
>>>
>>>  $ ../configure \
>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>    make qemu-nbd
>>>  ...
>>>  [505/505] Linking target qemu-nbd
>>>  FAILED: qemu-nbd
>>>  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
>>>  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
>>>  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
>>>  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
>>>  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
>>>  util/vhost-user-server.c:291: undefined reference to `vu_init'
>>>  collect2: error: ld returned 1 exit status
>>>  ninja: build stopped: subcommand failed.
>>>  make: *** [Makefile:171: run-ninja] Error 1
>>>
>>> Now we get:
>>>
>>>  $ ../configure \
>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
>>>
>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>> ---
>>> Since v1:
>>> - Addressed Thomas review comments
>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
>>> ---
>>>  configure | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/configure b/configure
>>> index 805f7791503..3124be82da1 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
>>>  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
>>>    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
>>>  fi
>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
>>> +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
>>> +fi
>>
>> A little bit later in this file, we've got :
>>
>> # libvhost-user is Linux-only
>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>>   error_exit "--enable-vhost-user-blk-server is only available on Linux"
>> fi
>>
>> I think it would be better to add the new code there instead.
>> Also maybe better do something like:
>>
>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
>>  &&  vhost_user_blk_server=$linux
>>
>> instead?
> 
> I understood this option is similar to the other vhost-user related ones
> and should be treated the same way.

But the second check does not make much sense anymore after your change,
since "$vhost_user_blk_server" is certainly not empty anymore. So the two
checks IMHO have to be combined.

 Thomas
Philippe Mathieu-Daudé Nov. 9, 2020, 6:52 p.m. UTC | #4
On 11/9/20 7:44 PM, Thomas Huth wrote:
> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote:
>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote:
>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
>>>> Check vhost-user is available when building vhost-user-blk-server.
>>>>
>>>> This fixes:
>>>>
>>>>  $ ../configure \
>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>    make qemu-nbd
>>>>  ...
>>>>  [505/505] Linking target qemu-nbd
>>>>  FAILED: qemu-nbd
>>>>  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
>>>>  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
>>>>  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
>>>>  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
>>>>  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
>>>>  util/vhost-user-server.c:291: undefined reference to `vu_init'
>>>>  collect2: error: ld returned 1 exit status
>>>>  ninja: build stopped: subcommand failed.
>>>>  make: *** [Makefile:171: run-ninja] Error 1
>>>>
>>>> Now we get:
>>>>
>>>>  $ ../configure \
>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
>>>>
>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>> ---
>>>> Since v1:
>>>> - Addressed Thomas review comments
>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
>>>> ---
>>>>  configure | 4 ++++
>>>>  1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/configure b/configure
>>>> index 805f7791503..3124be82da1 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
>>>>  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
>>>>    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
>>>>  fi
>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
>>>> +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
>>>> +fi
>>>
>>> A little bit later in this file, we've got :
>>>
>>> # libvhost-user is Linux-only
>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>>>   error_exit "--enable-vhost-user-blk-server is only available on Linux"
>>> fi
>>>
>>> I think it would be better to add the new code there instead.
>>> Also maybe better do something like:
>>>
>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
>>>  &&  vhost_user_blk_server=$linux
>>>
>>> instead?
>>
>> I understood this option is similar to the other vhost-user related ones
>> and should be treated the same way.
> 
> But the second check does not make much sense anymore after your change,
> since "$vhost_user_blk_server" is certainly not empty anymore. So the two
> checks IMHO have to be combined.

Ah now I see it... You are right, thanks for the review :)

Phil.
Philippe Mathieu-Daudé Nov. 9, 2020, 7:15 p.m. UTC | #5
On 11/9/20 7:52 PM, Philippe Mathieu-Daudé wrote:
> On 11/9/20 7:44 PM, Thomas Huth wrote:
>> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote:
>>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote:
>>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
>>>>> Check vhost-user is available when building vhost-user-blk-server.
>>>>>
>>>>> This fixes:
>>>>>
>>>>>  $ ../configure \
>>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>>    make qemu-nbd
>>>>>  ...
>>>>>  [505/505] Linking target qemu-nbd
>>>>>  FAILED: qemu-nbd
>>>>>  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
>>>>>  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
>>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>>  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
>>>>>  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
>>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>>  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
>>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
>>>>>  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
>>>>>  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
>>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
>>>>>  util/vhost-user-server.c:291: undefined reference to `vu_init'
>>>>>  collect2: error: ld returned 1 exit status
>>>>>  ninja: build stopped: subcommand failed.
>>>>>  make: *** [Makefile:171: run-ninja] Error 1
>>>>>
>>>>> Now we get:
>>>>>
>>>>>  $ ../configure \
>>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>>  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
>>>>>
>>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
>>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>>> ---
>>>>> Since v1:
>>>>> - Addressed Thomas review comments
>>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
>>>>> ---
>>>>>  configure | 4 ++++
>>>>>  1 file changed, 4 insertions(+)
>>>>>
>>>>> diff --git a/configure b/configure
>>>>> index 805f7791503..3124be82da1 100755
>>>>> --- a/configure
>>>>> +++ b/configure
>>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
>>>>>  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
>>>>>    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
>>>>>  fi
>>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
>>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
>>>>> +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
>>>>> +fi
>>>>
>>>> A little bit later in this file, we've got :
>>>>
>>>> # libvhost-user is Linux-only
>>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
>>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>>>>   error_exit "--enable-vhost-user-blk-server is only available on Linux"
>>>> fi
>>>>
>>>> I think it would be better to add the new code there instead.
>>>> Also maybe better do something like:
>>>>
>>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
>>>>  &&  vhost_user_blk_server=$linux
>>>>
>>>> instead?
>>>
>>> I understood this option is similar to the other vhost-user related ones
>>> and should be treated the same way.
>>
>> But the second check does not make much sense anymore after your change,
>> since "$vhost_user_blk_server" is certainly not empty anymore. So the two
>> checks IMHO have to be combined.
> 
> Ah now I see it... You are right, thanks for the review :)

So we are back to v2:
https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02333.html
Thomas Huth Nov. 10, 2020, 3:15 a.m. UTC | #6
On 09/11/2020 20.15, Philippe Mathieu-Daudé wrote:
> On 11/9/20 7:52 PM, Philippe Mathieu-Daudé wrote:
>> On 11/9/20 7:44 PM, Thomas Huth wrote:
>>> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote:
>>>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote:
>>>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
>>>>>> Check vhost-user is available when building vhost-user-blk-server.
>>>>>>
>>>>>> This fixes:
>>>>>>
>>>>>>  $ ../configure \
>>>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>>>    make qemu-nbd
>>>>>>  ...
>>>>>>  [505/505] Linking target qemu-nbd
>>>>>>  FAILED: qemu-nbd
>>>>>>  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
>>>>>>  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
>>>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>>>  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
>>>>>>  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
>>>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>>>  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
>>>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
>>>>>>  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
>>>>>>  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
>>>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
>>>>>>  util/vhost-user-server.c:291: undefined reference to `vu_init'
>>>>>>  collect2: error: ld returned 1 exit status
>>>>>>  ninja: build stopped: subcommand failed.
>>>>>>  make: *** [Makefile:171: run-ninja] Error 1
>>>>>>
>>>>>> Now we get:
>>>>>>
>>>>>>  $ ../configure \
>>>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>>>  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
>>>>>>
>>>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
>>>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>>>> ---
>>>>>> Since v1:
>>>>>> - Addressed Thomas review comments
>>>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
>>>>>> ---
>>>>>>  configure | 4 ++++
>>>>>>  1 file changed, 4 insertions(+)
>>>>>>
>>>>>> diff --git a/configure b/configure
>>>>>> index 805f7791503..3124be82da1 100755
>>>>>> --- a/configure
>>>>>> +++ b/configure
>>>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
>>>>>>  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
>>>>>>    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
>>>>>>  fi
>>>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
>>>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
>>>>>> +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
>>>>>> +fi
>>>>>
>>>>> A little bit later in this file, we've got :
>>>>>
>>>>> # libvhost-user is Linux-only
>>>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
>>>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>>>>>   error_exit "--enable-vhost-user-blk-server is only available on Linux"
>>>>> fi
>>>>>
>>>>> I think it would be better to add the new code there instead.
>>>>> Also maybe better do something like:
>>>>>
>>>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
>>>>>  &&  vhost_user_blk_server=$linux
>>>>>
>>>>> instead?
>>>>
>>>> I understood this option is similar to the other vhost-user related ones
>>>> and should be treated the same way.
>>>
>>> But the second check does not make much sense anymore after your change,
>>> since "$vhost_user_blk_server" is certainly not empty anymore. So the two
>>> checks IMHO have to be combined.
>>
>> Ah now I see it... You are right, thanks for the review :)
> 
> So we are back to v2:
> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02333.html

That looks wrong to me, too, since the default value is now $vhost_user and
not $linux ... so it could get enabled by default on non-Linux systems, too.

 Thomas
Philippe Mathieu-Daudé Nov. 10, 2020, 7:54 a.m. UTC | #7
On 11/10/20 4:15 AM, Thomas Huth wrote:
> On 09/11/2020 20.15, Philippe Mathieu-Daudé wrote:
>> On 11/9/20 7:52 PM, Philippe Mathieu-Daudé wrote:
>>> On 11/9/20 7:44 PM, Thomas Huth wrote:
>>>> On 09/11/2020 19.41, Philippe Mathieu-Daudé wrote:
>>>>> On Mon, Nov 9, 2020 at 6:22 PM Thomas Huth <thuth@redhat.com> wrote:
>>>>>> On 09/11/2020 15.07, Philippe Mathieu-Daudé wrote:
>>>>>>> Check vhost-user is available when building vhost-user-blk-server.
>>>>>>>
>>>>>>> This fixes:
>>>>>>>
>>>>>>>  $ ../configure \
>>>>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>>>>    make qemu-nbd
>>>>>>>  ...
>>>>>>>  [505/505] Linking target qemu-nbd
>>>>>>>  FAILED: qemu-nbd
>>>>>>>  cc  -o qemu-nbd qemu-nbd.p/qemu-nbd.c.o -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa -Wl,--no-whole-archive -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64 -fstack-protector-strong -Wl,--start-group libqemuutil.a libblockdev.fa libblock.fa libcrypto.fa libauthz.fa libqom.fa libio.fa @block.syms -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -pthread -lgnutls -lutil -lm -lgthread-2.0 -lglib-2.0 -lbz2 -lgthread-2.0 -lglib-2.0 -lssh -lrbd -lrados -lcurl -lxml2 -lzstd -lacl -lgfapi -lglusterfs -lgfrpc -lgfxdr -luuid -laio /usr/lib64/libz.so -L/usr/lib64/iscsi -liscsi -lnettle -lgnutls -lpam -Wl,--end-group
>>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_process_vq':
>>>>>>>  block/export/vhost-user-blk-server.c:203: undefined reference to `vu_get_queue'
>>>>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:208: undefined reference to `vu_queue_pop'
>>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>>>>  block/export/vhost-user-blk-server.c:228: undefined reference to `vu_get_queue'
>>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_req_complete':
>>>>>>>  block/export/vhost-user-blk-server.c:55: undefined reference to `vu_queue_push'
>>>>>>>  /usr/bin/ld: block/export/vhost-user-blk-server.c:56: undefined reference to `vu_queue_notify'
>>>>>>>  /usr/bin/ld: libblockdev.fa(block_export_vhost-user-blk-server.c.o): in function `vu_blk_queue_set_started':
>>>>>>>  block/export/vhost-user-blk-server.c:229: undefined reference to `vu_set_queue_handler'
>>>>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_client_trip':
>>>>>>>  util/vhost-user-server.c:176: undefined reference to `vu_dispatch'
>>>>>>>  /usr/bin/ld: util/vhost-user-server.c:180: undefined reference to `vu_deinit'
>>>>>>>  /usr/bin/ld: libqemuutil.a(util_vhost-user-server.c.o): in function `vu_accept':
>>>>>>>  util/vhost-user-server.c:291: undefined reference to `vu_init'
>>>>>>>  collect2: error: ld returned 1 exit status
>>>>>>>  ninja: build stopped: subcommand failed.
>>>>>>>  make: *** [Makefile:171: run-ninja] Error 1
>>>>>>>
>>>>>>> Now we get:
>>>>>>>
>>>>>>>  $ ../configure \
>>>>>>>       --disable-vhost-user --enable-vhost-user-blk-server && \
>>>>>>>  ERROR: --enable-vhost-user-blk-server requires --enable-vhost-user
>>>>>>>
>>>>>>> Fixes: bc15e44cb21 ("configure: introduce --enable-vhost-user-blk-server")
>>>>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>>>>> ---
>>>>>>> Since v1:
>>>>>>> - Addressed Thomas review comments
>>>>>>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02188.html
>>>>>>> ---
>>>>>>>  configure | 4 ++++
>>>>>>>  1 file changed, 4 insertions(+)
>>>>>>>
>>>>>>> diff --git a/configure b/configure
>>>>>>> index 805f7791503..3124be82da1 100755
>>>>>>> --- a/configure
>>>>>>> +++ b/configure
>>>>>>> @@ -2375,6 +2375,10 @@ test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
>>>>>>>  if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
>>>>>>>    error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
>>>>>>>  fi
>>>>>>> +test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
>>>>>>> +if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
>>>>>>> +  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
>>>>>>> +fi
>>>>>>
>>>>>> A little bit later in this file, we've got :
>>>>>>
>>>>>> # libvhost-user is Linux-only
>>>>>> test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$linux
>>>>>> if test "$vhost_user_blk_server" = "yes" && test "$linux" = "no"; then
>>>>>>   error_exit "--enable-vhost-user-blk-server is only available on Linux"
>>>>>> fi
>>>>>>
>>>>>> I think it would be better to add the new code there instead.
>>>>>> Also maybe better do something like:
>>>>>>
>>>>>> test "$vhost_user_blk_server" = "" && test "$vhost_user" = "yes" \
>>>>>>  &&  vhost_user_blk_server=$linux
>>>>>>
>>>>>> instead?
>>>>>
>>>>> I understood this option is similar to the other vhost-user related ones
>>>>> and should be treated the same way.
>>>>
>>>> But the second check does not make much sense anymore after your change,
>>>> since "$vhost_user_blk_server" is certainly not empty anymore. So the two
>>>> checks IMHO have to be combined.
>>>
>>> Ah now I see it... You are right, thanks for the review :)
>>
>> So we are back to v2:
>> https://lists.gnu.org/archive/html/qemu-devel/2020-11/msg02333.html
> 
> That looks wrong to me, too, since the default value is now $vhost_user and
> not $linux ... so it could get enabled by default on non-Linux systems, too.

I'm giving up. Let see if Alex wants this fixed (as he added the job)
or if we disable/remove the job if nobody worries about this config.

> 
>  Thomas
>
diff mbox series

Patch

diff --git a/configure b/configure
index 805f7791503..3124be82da1 100755
--- a/configure
+++ b/configure
@@ -2375,6 +2375,10 @@  test "$vhost_user_fs" = "" && vhost_user_fs=$vhost_user
 if test "$vhost_user_fs" = "yes" && test "$vhost_user" = "no"; then
   error_exit "--enable-vhost-user-fs requires --enable-vhost-user"
 fi
+test "$vhost_user_blk_server" = "" && vhost_user_blk_server=$vhost_user
+if test "$vhost_user_blk_server" = "yes" && test "$vhost_user" = "no"; then
+  error_exit "--enable-vhost-user-blk-server requires --enable-vhost-user"
+fi
 #vhost-vdpa backends
 test "$vhost_net_vdpa" = "" && vhost_net_vdpa=$vhost_vdpa
 if test "$vhost_net_vdpa" = "yes" && test "$vhost_vdpa" = "no"; then