yeahuh / rpms / qemu-kvm

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