From f1ec0e873266ddec6eca3f52a1a9d5ee479ae3f5 Mon Sep 17 00:00:00 2001 From: Peter Xu Date: Wed, 19 Jul 2017 07:25:08 +0200 Subject: [PATCH 12/17] configure: allow to disable VT-d emulation RH-Author: Peter Xu Message-id: <1500449109-20652-2-git-send-email-peterx@redhat.com> Patchwork-id: 75809 O-Subject: [Pegas-1.0 qemu-kvm PATCH v2 1/2] configure: allow to disable VT-d emulation Bugzilla: 1465450 RH-Acked-by: Miroslav Rezanina RH-Acked-by: Eduardo Habkost RH-Acked-by: Jeffrey Cody Provide a way to disable VT-d emulation for x86 guests. x86-iommu.c is still required since it provides some interfaces that is used in common codes, like ACPI. Signed-off-by: Peter Xu Signed-off-by: Miroslav Rezanina --- configure | 11 +++++++++++ hw/i386/Makefile.objs | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/configure b/configure index b019b33..a658481 100755 --- a/configure +++ b/configure @@ -323,6 +323,7 @@ tcmalloc="no" jemalloc="no" replication="yes" vxhs="" +vtd="yes" supported_cpu="no" supported_os="no" @@ -1194,6 +1195,10 @@ for opt do ;; --enable-vxhs) vxhs="yes" ;; + --disable-vtd) vtd="no" + ;; + --enable-vtd) vtd="yes" + ;; *) echo "ERROR: unknown option $opt" echo "Try '$0 --help' for more information" @@ -1440,6 +1445,7 @@ disabled with --disable-FEATURE, default is enabled if available: qom-cast-debug cast debugging support tools build qemu-io, qemu-nbd and qemu-image tools vxhs Veritas HyperScale vDisk backend support + vtd Emulated VT-d support (only affects x86 targets) NOTE: The object files are built at the place where configure is launched EOF @@ -5162,6 +5168,7 @@ echo "jemalloc support $jemalloc" echo "avx2 optimization $avx2_opt" echo "replication support $replication" echo "VxHS block device $vxhs" +echo "VT-d emulation $vtd" if test "$sdl_too_old" = "yes"; then echo "-> Your SDL version is too old - please upgrade to have SDL support" @@ -5814,6 +5821,10 @@ if test "$vxhs" = "yes" ; then echo "VXHS_LIBS= -lssl" >> $config_host_mak fi +if test "$vtd" = "yes" ; then + echo "CONFIG_VTD=y" >> $config_host_mak +fi + if test "$tcg_interpreter" = "yes"; then QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/tci $QEMU_INCLUDES" elif test "$ARCH" = "sparc64" ; then diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index a15db94..68a2c3b 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -2,7 +2,8 @@ obj-$(CONFIG_KVM) += kvm/ obj-y += multiboot.o obj-y += pc.o pc_piix.o pc_q35.o obj-y += pc_sysfw.o -obj-y += x86-iommu.o intel_iommu.o +obj-y += x86-iommu.o +obj-$(CONFIG_VTD) += intel_iommu.o # Disabled in Red Hat Enterprise Linux # obj-y += amd_iommu.o obj-$(CONFIG_XEN) += ../xenpv/ xen/ -- 1.8.3.1