Message ID | 1231422848-32179-1-git-send-email-ehrhardt@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
ehrhardt@linux.vnet.ibm.com wrote: > From: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> > > The patch applies to upstream qemu as well as kvm-userspace, but since it is > the qemu configure script I think it should go to upstream qemu (Anthony) > first and with the next merge to kvm-userspace. On the other hand it is the kvm > probe so an ack from Avi in case v3 is ok would be reasonable. > Looks fine from here.
ehrhardt@linux.vnet.ibm.com wrote: > From: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> > > The patch applies to upstream qemu as well as kvm-userspace, but since it is > the qemu configure script I think it should go to upstream qemu (Anthony) > first and with the next merge to kvm-userspace. On the other hand it is the kvm > probe so an ack from Avi in case v3 is ok would be reasonable. > > *updates* > v2 - it also reports other errors than just #error preprocessor statements > (requested by Avi) > v3 - In case awk or grep is not installed it now gracfully (silently) > fails still disabling kvm (requested by Anthony) > > This patch is about reporting more details of the issue if configuring kvm > fails. Therefore this patch keeps the qemu style configure output which is a > list of "$Feature $Status", but extend the "no" result like "KVM Support no" > with some more information. > > There might be a lot of things going wrong with that probe and I don't want > to handle all of them, but if it is one of the known checks e.g. for > KVM_API_VERSION then we could grep/awk that out and report it. The patch > reports in case of a known case in the style > "KVM support no - (Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS)" > > In case more than one #error is triggered it creates a comma separated list in > those brackets and in case it is something else than an #error it just reports > plain old "no". > > Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> > --- > > configure | 27 ++++++++++++++++++++------- > 1 file changed, 20 insertions(+), 7 deletions(-) > > diff --git a/qemu/configure b/qemu/configure > --- a/qemu/configure > +++ b/qemu/configure > Please send against upstream QEMU. Regards, Anthony Liguori -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/qemu/configure b/qemu/configure --- a/qemu/configure +++ b/qemu/configure @@ -1002,13 +1002,17 @@ if test "$kvm" = "yes" ; then if test "$kvm" = "yes" ; then cat > $TMPC <<EOF #include <linux/kvm.h> -#if !defined(KVM_API_VERSION) || \ - KVM_API_VERSION < 12 || \ - KVM_API_VERSION > 12 || \ - !defined(KVM_CAP_USER_MEMORY) || \ - !defined(KVM_CAP_SET_TSS_ADDR) || \ - !defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS) +#if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12 #error Invalid KVM version +#endif +#if !defined(KVM_CAP_USER_MEMORY) +#error Missing KVM capability KVM_CAP_USER_MEMORY +#endif +#if !defined(KVM_CAP_SET_TSS_ADDR) +#error Missing KVM capability KVM_CAP_SET_TSS_ADDR +#endif +#if !defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS) +#error Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS #endif int main(void) { return 0; } EOF @@ -1021,7 +1025,16 @@ EOF > /dev/null 2>/dev/null ; then : else - kvm="no" + kvm="no"; + if [ -x "`which awk 2>/dev/null`" ] && \ + [ -x "`which grep 2>/dev/null`" ]; then + kvmerr=`$cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC 2>&1 \ + | grep "error: " \ + | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'` + if test "$kvmerr" != "" ; then + kvm="no - (${kvmerr})" + fi + fi fi fi