From: Markus Armbruster <armbru@redhat.com>
To: Giuseppe Lettieri <giuseppe.lettieri@unipi.it>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Daniel P. Berrange" <berrange@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
qemu-devel@nongnu.org, "Vincenzo Maffione" <v.maffione@gmail.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Giuseppe Lettieri" <g.lettieri@iet.unipi.it>,
"Luigi Rizzo" <rizzo@iet.unipi.it>
Subject: Re: [Qemu-devel] Is network backend netmap worth keeping?
Date: Mon, 23 Sep 2019 13:21:28 +0200 [thread overview]
Message-ID: <874l13qmvb.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <df94280b-13f6-1df3-f594-5eb0a614777d@unipi.it> (Giuseppe Lettieri's message of "Mon, 16 Sep 2019 16:45:43 +0200")
Giuseppe Lettieri <giuseppe.lettieri@unipi.it> writes:
> Il 13/09/19 15:04, Markus Armbruster ha scritto:
>>
>> What happens when I build with --enable-netmap=system on host A, then
>> run the resulting binary on some host B that doesn't have netmap
>> installed?
>>
>
> Qemu will fail at startup, complaining that /dev/netmap does not exists.
>
>
>>
>> Yes. We default to netmap=system, though. If you break things by
>> passing arcane arguments to configure, you get to keep the pieces :)
>>
>>> If the option is only useful for developers to check that some qemu
>>> change does not break anything, then probably it should be enabled in
>>> some other, less visible way. What do you think?
>>
>> I think an --enable-netmap patterned after --enable-capstone and
>> --enable-slirp has sufficiently low visibility as long as the default is
>> sane.
>>
>> We clearly want configure to pick netmap=system when the system provides
>> netmap.
>>
>> What shall configure pick when the system doesn't provide it? If you
>> think netmap=git is too dangerous for general audience, consider
>> disabling netmap then. Experts can still compile-test with
>> --enable-netmap=git. Our CI certainly should.
>>
>
> OK, sounds reasonable. The attached patch will select system if netmap
> is available, and git only if explicitly requested.
>
> Cheers,
> Giuseppe
>
> --
> Dr. Ing. Giuseppe Lettieri
> Dipartimento di Ingegneria della Informazione
> Universita' di Pisa
> Largo Lucio Lazzarino 1, 56122 Pisa - Italy
> Ph. : (+39) 050-2217.649 (direct) .599 (switch)
> Fax : (+39) 050-2217.600
> e-mail: g.lettieri@iet.unipi.it
>
>>From 4e93b5cc3ad68d92bc3562df3745e1d10dc08fc0 Mon Sep 17 00:00:00 2001
> From: Giuseppe Lettieri <g.lettieri@iet.unipi.it>
> Date: Mon, 2 Sep 2019 17:35:33 +0200
> Subject: [PATCH] netmap: support git-submodule build otption
>
> With this patch, netmap support can be enabled with
> the following options to the configure script:
>
> --enable-netmap[=system]
>
> Use the host system netmap installation.
> Fail if not found.
>
> --enable-netmap=git
>
> clone the official netmap repository on
> github (mostly useful for CI)
>
> system will also be automatically used if no option is
> passed and netmap is available in the host system.
>
> Signed-off-by: Giuseppe Lettieri <giuseppe.lettieri@unipi.it>
> ---
> .gitmodules | 3 +++
> configure | 68 ++++++++++++++++++++++++++++++++++++++++++++---------
> netmap | 1 +
> 3 files changed, 61 insertions(+), 11 deletions(-)
> create mode 160000 netmap
>
> diff --git a/.gitmodules b/.gitmodules
> index c5c474169d..bf75dbc5e3 100644
> --- a/.gitmodules
> +++ b/.gitmodules
> @@ -58,3 +58,6 @@
> [submodule "roms/opensbi"]
> path = roms/opensbi
> url = https://git.qemu.org/git/opensbi.git
> +[submodule "netmap"]
> + path = netmap
> + url = https://github.com/luigirizzo/netmap.git
> diff --git a/configure b/configure
> index 30aad233d1..5cb924985c 100755
> --- a/configure
> +++ b/configure
> @@ -1133,6 +1133,10 @@ for opt do
> ;;
> --enable-netmap) netmap="yes"
> ;;
> + --enable-netmap=git) netmap="git"
> + ;;
> + --enable-netmap=system) netmap="system"
> + ;;
> --disable-xen) xen="no"
> ;;
> --enable-xen) xen="yes"
> @@ -3314,8 +3318,9 @@ fi
> # a minor/major version number. Minor new features will be marked with values up
> # to 15, and if something happens that requires a change to the backend we will
> # move above 15, submit the backend fixes and modify this two bounds.
> -if test "$netmap" != "no" ; then
> - cat > $TMPC << EOF
> +case "$netmap" in
> + "" | yes | system)
> + cat > $TMPC << EOF
> #include <inttypes.h>
> #include <net/if.h>
> #include <net/netmap.h>
> @@ -3325,15 +3330,56 @@ if test "$netmap" != "no" ; then
> #endif
> int main(void) { return 0; }
> EOF
> - if compile_prog "" "" ; then
> - netmap=yes
> - else
> - if test "$netmap" = "yes" ; then
> - feature_not_found "netmap"
> + if compile_prog "" "" ; then
> + netmap_system=yes
> + else
> + netmap_system=no
> + fi
> + ;;
> +esac
Is the indentation change intentional?
> +
> +case "$netmap" in
> + "" | yes)
> + if test "$netmap_system" = "yes"; then
> + netmap=system
> + elif test -e "${source_path}/.git" && test $git_update = 'yes' ; then
> + netmap=git
> + elif test -e "${source_path}/netmap/configure" ; then
> + netmap=internal
> + elif test -z "$netmap" ; then
> + netmap=no
> + else
> + feature_not_found "netmap" "Install netmap or git submodule"
> fi
> - netmap=no
> - fi
> -fi
> + ;;
> +
> + system)
> + if test "$netmap_system" = "no"; then
> + feature_not_found "netmap" "Install netmap"
> + fi
> + ;;
> +esac
> +
> +case "$netmap" in
> + git | internal)
> + if test "$netmap" = git; then
> + git_submodules="${git_submodules} netmap"
> + fi
> + mkdir -p netmap
> + QEMU_CFLAGS="$QEMU_CFLAGS -I\$(SRC_PATH)/netmap/sys"
> + ;;
> +
> + system)
> + ;;
> +
> + no)
> + ;;
> + *)
> + error_exit "Unknown state for netmap: $netmap"
> + ;;
> +esac
> +
> +##########################################
>
> ##########################################
> # libcap-ng library probe
> @@ -6582,7 +6628,7 @@ if test "$vde" = "yes" ; then
> echo "CONFIG_VDE=y" >> $config_host_mak
> echo "VDE_LIBS=$vde_libs" >> $config_host_mak
> fi
> -if test "$netmap" = "yes" ; then
> +if test "$netmap" != "no" ; then
> echo "CONFIG_NETMAP=y" >> $config_host_mak
> fi
> if test "$l2tpv3" = "yes" ; then
> diff --git a/netmap b/netmap
> new file mode 160000
> index 0000000000..137f537eae
> --- /dev/null
> +++ b/netmap
> @@ -0,0 +1 @@
> +Subproject commit 137f537eae513f02d5d6871d1f91c049e6345803
Looks reasonable to me. Please submit it as a patch.
next prev parent reply other threads:[~2019-09-23 11:23 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-06 15:14 [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 01/29] include: Make headers more self-contained Markus Armbruster
2019-08-07 15:03 ` Alex Bennée
2019-08-07 19:45 ` Markus Armbruster
2019-08-07 21:28 ` Alex Bennée
2019-08-08 4:21 ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 02/29] Include generated QAPI headers less Markus Armbruster
2019-08-06 21:50 ` Eric Blake
2019-08-07 9:53 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 03/29] qapi: Split error.json off common.json Markus Armbruster
2019-08-07 9:57 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 04/29] memory: Fix type of IOMMUMemoryRegionClass member @parent_class Markus Armbruster
2019-08-07 10:11 ` Philippe Mathieu-Daudé
2019-08-07 10:16 ` Paolo Bonzini
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 05/29] queue: Drop superfluous #include qemu/atomic.h Markus Armbruster
2019-08-07 10:21 ` Philippe Mathieu-Daudé
2019-08-07 15:40 ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 06/29] trace: Eliminate use of TARGET_FMT_plx Markus Armbruster
2019-08-07 9:29 ` Stefan Hajnoczi
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 07/29] trace: Do not include qom/cpu.h into generated trace.h Markus Armbruster
2019-08-07 9:32 ` Stefan Hajnoczi
2019-08-07 10:30 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 08/29] Include sysemu/reset.h a lot less Markus Armbruster
2019-08-07 10:38 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 09/29] Include migration/qemu-file-types.h " Markus Armbruster
2019-08-07 12:25 ` Philippe Mathieu-Daudé
2019-08-07 17:30 ` Philippe Mathieu-Daudé
2019-08-07 19:46 ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 10/29] ide: Include hw/ide/internal a bit less outside hw/ide/ Markus Armbruster
2019-08-06 21:40 ` John Snow
2019-08-07 12:29 ` Philippe Mathieu-Daudé
2019-08-07 14:56 ` John Snow
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 11/29] typedefs: Separate incomplete types and function types Markus Armbruster
2019-08-07 12:31 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 12/29] Include hw/irq.h a lot less Markus Armbruster
2019-08-07 13:04 ` Philippe Mathieu-Daudé
2019-08-07 21:06 ` Eric Blake
2019-08-08 4:27 ` Markus Armbruster
2019-08-08 5:09 ` Richard Henderson
2019-08-08 11:48 ` Eric Blake
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 13/29] Clean up inclusion of exec/cpu-common.h Markus Armbruster
2019-08-07 14:20 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 14/29] migration: Move the VMStateDescription typedef to typedefs.h Markus Armbruster
2019-08-07 15:22 ` Alex Bennée
2019-08-07 17:13 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 15/29] Include migration/vmstate.h less Markus Armbruster
2019-08-07 14:44 ` Philippe Mathieu-Daudé
2019-08-08 11:36 ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 16/29] Include exec/memory.h slightly less Markus Armbruster
2019-08-07 14:50 ` Philippe Mathieu-Daudé
2019-08-08 12:16 ` Markus Armbruster
2019-08-08 12:36 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 17/29] Include qom/object.h " Markus Armbruster
2019-08-07 17:11 ` Philippe Mathieu-Daudé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 18/29] Include hw/hw.h exactly where needed Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 19/29] Include qemu/queue.h slightly less Markus Armbruster
2019-08-07 15:57 ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 20/29] Include qemu/main-loop.h less Markus Armbruster
2019-08-07 13:18 ` Philippe Mathieu-Daudé
2019-08-07 13:49 ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 21/29] Include hw/qdev-properties.h less Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 22/29] Include hw/boards.h a bit less Markus Armbruster
2019-08-06 21:37 ` Alistair Francis
2019-08-07 17:26 ` Philippe Mathieu-Daudé
2019-08-07 17:57 ` Eduardo Habkost
2019-08-07 18:05 ` Philippe Mathieu-Daudé
2019-08-07 18:19 ` Eduardo Habkost
2019-08-08 11:57 ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 23/29] numa: Don't include hw/boards.h into sysemu/numa.h Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 24/29] Include sysemu/hostmem.h less Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 25/29] numa: Move remaining NUMA declarations from sysemu.h to numa.h Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 26/29] Clean up inclusion of sysemu/sysemu.h Markus Armbruster
2019-08-06 21:36 ` Alistair Francis
2019-08-07 15:47 ` Alex Bennée
2019-08-07 20:10 ` Markus Armbruster
2019-08-08 14:21 ` Alex Bennée
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 27/29] Include sysemu/sysemu.h a lot less Markus Armbruster
2019-08-06 21:38 ` Alistair Francis
2019-08-07 9:28 ` Stefan Hajnoczi
2019-08-07 13:24 ` Philippe Mathieu-Daudé
2019-08-07 13:51 ` Markus Armbruster
2019-08-07 17:31 ` Philippe Mathieu-Daudé
2019-08-07 20:16 ` Markus Armbruster
2019-08-07 21:05 ` Philippe Mathieu-Daudé
2019-08-08 4:48 ` [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less) Markus Armbruster
2019-08-08 5:38 ` [Qemu-devel] Is network backend netmap worth keeping? Jason Wang
2019-08-08 13:36 ` Philippe Mathieu-Daudé
2019-08-08 17:27 ` Vincenzo Maffione
2019-08-08 7:27 ` Giuseppe Lettieri
2019-08-08 11:52 ` Markus Armbruster
2019-08-12 12:32 ` Philippe Mathieu-Daudé
2019-08-12 12:34 ` Philippe Mathieu-Daudé
2019-09-02 20:50 ` Giuseppe Lettieri
2019-09-13 13:04 ` Markus Armbruster
2019-09-16 14:45 ` Giuseppe Lettieri
2019-09-23 11:21 ` Markus Armbruster [this message]
2019-10-04 13:02 ` [PATCH] netmap: support git-submodule build otption Giuseppe Lettieri
2019-10-04 13:08 ` Peter Maydell
2019-10-07 10:49 ` Markus Armbruster
2019-10-07 11:58 ` Peter Maydell
2019-10-07 12:35 ` Markus Armbruster
2019-10-07 12:39 ` Peter Maydell
2019-10-08 9:17 ` Daniel P. Berrangé
2019-10-08 11:57 ` Markus Armbruster
2019-10-07 15:37 ` Thomas Huth
2019-10-07 17:53 ` Markus Armbruster
2019-10-07 15:44 ` Markus Armbruster
2019-08-08 8:12 ` [Qemu-devel] Is network backend netmap worth keeping? (was: [PATCH v2 27/29] Include sysemu/sysemu.h a lot less) Stefano Garzarella
2019-10-07 18:21 ` Is network backend vde worth keeping? (was: Is network backend netmap worth keeping?) Markus Armbruster
2019-10-09 9:13 ` Thomas Huth
2019-10-11 6:55 ` Thomas Huth
2019-10-10 17:07 ` Julia Suvorova
2019-10-10 17:39 ` Daniel P. Berrangé
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 28/29] sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h Markus Armbruster
2019-08-07 15:26 ` Alex Bennée
2019-08-07 20:19 ` Markus Armbruster
2019-08-06 15:14 ` [Qemu-devel] [PATCH v2 29/29] sysemu: Split sysemu/runstate.h off sysemu/sysemu.h Markus Armbruster
2019-08-07 4:40 ` Markus Armbruster
2019-08-07 10:15 ` Paolo Bonzini
2019-08-06 16:02 ` [Qemu-devel] [PATCH v2 00/29] Tame a few "touch this, recompile the world" headers no-reply
2019-08-06 16:56 ` no-reply
2019-08-07 16:32 ` Alex Bennée
2019-08-07 20:21 ` Markus Armbruster
2019-08-08 13:21 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874l13qmvb.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=g.lettieri@iet.unipi.it \
--cc=giuseppe.lettieri@unipi.it \
--cc=jasowang@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rizzo@iet.unipi.it \
--cc=stefanha@redhat.com \
--cc=v.maffione@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.