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