Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > aadbe78a25743146bb784eee19f007c5 > files > 217

kvm-83-164.el5_5.9.src.rpm

From bc8c8ba97d3b17bde98761496cd1f63e3327dcbe Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost@redhat.com>
Date: Fri, 2 Oct 2009 14:15:30 -0300
Subject: [PATCH 10/10] add options to request kvm pit and device assignment

RH-Author: Juan Quintela <quintela@redhat.com>
Message-id: <5ac94ee3aa5242188c0dcf3e18bbea0d2e66fd41.1254313767.git.quintela@redhat.com>
Patchwork-id: 3544
O-Subject: [PATCH 3/3] add options to request kvm pit and device assignment
Bugzilla: 489900
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Luiz Capitulino <lcapitulino@redhat.com>
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qemu/configure |   79 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 56 insertions(+), 23 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/configure |   79 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/qemu/configure b/qemu/configure
index 91cc6a0..12aba39 100755
--- a/qemu/configure
+++ b/qemu/configure
@@ -187,8 +187,8 @@ nbd="yes"
 x86_only_generic_cpus="no"
 kvm=""
 kvm_nested="yes"
-kvm_cap_pit="no"
-kvm_cap_device_assignment="no"
+kvm_cap_pit=""
+kvm_cap_device_assignment=""
 kerneldir=""
 aix="no"
 blobs="yes"
@@ -447,6 +447,14 @@ for opt do
   ;;
   --enable-kvm) kvm="yes"
   ;;
+  --disable-kvm-cap-pit) kvm_cap_pit="no"
+  ;;
+  --enable-kvm-cap-pit) kvm_cap_pit="yes"
+  ;;
+  --disable-kvm-cap-device-assignment) kvm_cap_device_assignment="no"
+  ;;
+  --enable-kvm-cap-device-assignment) kvm_cap_device_assignment="yes"
+  ;;
   --enable-profiler) profiler="yes"
   ;;
   --enable-cocoa)
@@ -610,6 +618,10 @@ echo "  --disable-kvm-nested     disable KVM nested support"
 echo "  --enable-kvm-nested      enable KVM nested support"
 echo "  --disable-kvm            disable KVM acceleration support"
 echo "  --enable-kvm             enable KVM acceleration support"
+echo "  --disable-kvm-cap-pit    disable KVM PIT support"
+echo "  --enable-kvm-cap-pit     enable KVM PIT support"
+echo "  --disable-kvm-cap-device-assignment   disable KVM device assignment support"
+echo "  --enable-kvm-cap-device-assignment    enable KVM device assignment support"
 echo "  --disable-nptl           disable usermode NPTL support"
 echo "  --enable-system          enable all system emulation targets"
 echo "  --disable-system         disable all system emulation targets"
@@ -1110,55 +1122,72 @@ EOF
   fi
 fi
 ##########################################
-# KVM probe
-
-if test "$kvm" != "no" ; then
-
 # test for KVM_CAP_PIT
 
-cat > $TMPC <<EOF
+if test "$kvm_cap_pit" != "no" ; then
+  if test "$kvm" = "no" -a "$kvm_cap_pit" = "yes" ; then
+      feature_not_found "kvm_cap_pit (kvm is not enabled)"
+  fi
+  cat > $TMPC <<EOF
 #include <libkvm.h>
 #ifndef KVM_CAP_PIT
 #error "kvm no pit capability"
 #endif
 int main(void) { return 0; }
 EOF
-    if $cc $ARCH_CFLAGS $CFLAGS -I"$kerneldir"/include -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
-	kvm_cap_pit="yes"
+  if $cc $ARCH_CFLAGS $CFLAGS -I"$kerneldir"/include -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
+    kvm_cap_pit=yes
+  else
+    if test "$kvm_cap_pit" = "yes" ; then
+      feature_not_found "kvm_cap_pit"
     fi
+    kvm_cap_pit=no
+  fi
+fi
 
+##########################################
 # test for KVM_CAP_DEVICE_ASSIGNMENT
 
-cat > $TMPC <<EOF
+if test "$kvm_cap_device_assignment" != "no" ; then
+  if test "$kvm" = "no" -a "$kvm_cap_device_assignment" = "yes" ; then
+      feature_not_found "kvm_cap_device_assignment (kvm is not enabled)"
+  fi
+  cat > $TMPC <<EOF
 #include <libkvm.h>
 #ifndef KVM_CAP_DEVICE_ASSIGNMENT
 #error "kvm no device assignment capability"
 #endif
 int main(void) { return 0; }
 EOF
-    if $cc $ARCH_CFLAGS $CFLAGS -I"$kerneldir"/include -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
-	kvm_cap_device_assignment="yes"
+  if $cc $ARCH_CFLAGS $CFLAGS -I"$kerneldir"/include -o $TMPE ${OS_CFLAGS} $TMPC 2> /dev/null ; then
+    kvm_cap_device_assignment=yes
+  else
+    if test "$kvm_cap_device_assignment" = "yes" ; then
+      feature_not_found "kvm_cap_device_assigment"
     fi
+    kvm_cap_device_assignment=no
+  fi
 fi
 
+##########################################
 # libpci probe for kvm_cap_device_assignment
 if test $kvm_cap_device_assignment = "yes" ; then
-cat > $TMPC << EOF
+  cat > $TMPC << EOF
 #include <pci/pci.h>
 #ifndef PCI_VENDOR_ID
 #error NO LIBPCI
 #endif
-int main(void) { return 0; }
+int main(void) { struct pci_access a; pci_init(&a); return 0; }
 EOF
-    if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC 2>/dev/null ; then
-        :
-    else
-        echo
-        echo "Error: libpci check failed"
-        echo "Disable KVM Device Assignment capability."
-        echo
-        kvm_cap_device_assignment="no"
-    fi
+  if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lpci 2>/dev/null ; then
+    :
+  else
+    echo
+    echo "Error: libpci check failed"
+    echo "Disable KVM Device Assignment capability."
+    echo
+    kvm_cap_device_assignment=no
+  fi
 fi
 
 ##########################################
@@ -1344,6 +1373,10 @@ if test -n "$sparc_cpu"; then
 fi
 echo "kqemu support     $kqemu"
 echo "kvm support       $kvm"
+if test "$kvm" = "yes" ; then
+  echo "  PIT support       $kvm_cap_pit"
+  echo "  device assignment $kvm_cap_device_assignment"
+fi
 echo "CPU emulation     $cpu_emulation"
 echo "brlapi support    $brlapi"
 echo "Documentation     $build_docs"
-- 
1.6.3.rc4.29.g8146