From f1ec0e873266ddec6eca3f52a1a9d5ee479ae3f5 Mon Sep 17 00:00:00 2001
From: Peter Xu <peterx@redhat.com>
Date: Wed, 19 Jul 2017 07:25:08 +0200
Subject: [PATCH 12/17] configure: allow to disable VT-d emulation
RH-Author: Peter Xu <peterx@redhat.com>
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 <mrezanin@redhat.com>
RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
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 <peterx@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
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