All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] [PATCH] qemu: report issues causing the kvm probe to fail
@ 2008-12-11 16:40 Christian Ehrhardt
  2008-12-15 10:30 ` Avi Kivity
  0 siblings, 1 reply; 3+ messages in thread
From: Christian Ehrhardt @ 2008-12-11 16:40 UTC (permalink / raw)
  To: avi; +Cc: hollisb, ehrhardt, kvm

# HG changeset patch
# User Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
# Date 1229005383 -3600
# Node ID d788f32f8f60f3a0d86ab218459089e5186632ca
# Parent  f7dc67cd9b74c5d7ad322686e58325f879d93468
[PATCH] qemu: report issues causing the kvm probe to fail

From: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>

I ran into the issue of a failign KVM Probe of the qemu configure script three
times this week always needing "set -x", inserting an exit, masking the cleanup
trap and compiling the c file by hand until I knew what the reason is. I think
we could make easier for developers and end users.
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>
---

[diffstat]
 configure |   24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

[diff]

diff --git a/qemu/configure b/qemu/configure
--- a/qemu/configure
+++ b/qemu/configure
@@ -1037,12 +1037,14 @@ 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)
+#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
 int main(void) { return 0; }
 EOF
@@ -1055,7 +1057,12 @@ EOF
       2>/dev/null ; then
     :
   else
-    kvm="no"
+    kvmprobeerr=`$cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC 2>&1 | grep "error: #error " | awk --field-separator "error: #error " '{if (NR>1) printf(", "); printf("%s",$2);}'`
+    if test "$kvmprobeerr" != "" ; then
+      kvm="no - (${kvmprobeerr})"
+    else
+      kvm="no"
+    fi
   fi
 fi
 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] [PATCH] qemu: report issues causing the kvm probe to fail
  2008-12-11 16:40 [PATCH] [PATCH] qemu: report issues causing the kvm probe to fail Christian Ehrhardt
@ 2008-12-15 10:30 ` Avi Kivity
  2008-12-15 13:26   ` Christian Ehrhardt
  0 siblings, 1 reply; 3+ messages in thread
From: Avi Kivity @ 2008-12-15 10:30 UTC (permalink / raw)
  To: Christian Ehrhardt; +Cc: hollisb, kvm

Christian Ehrhardt wrote:
> I ran into the issue of a failign KVM Probe of the qemu configure script three
> times this week always needing "set -x", inserting an exit, masking the cleanup
> trap and compiling the c file by hand until I knew what the reason is. I think
> we could make easier for developers and end users.
> 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".
>
> diff --git a/qemu/configure b/qemu/configure
> --- a/qemu/configure
> +++ b/qemu/configure
> @@ -1037,12 +1037,14 @@ 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)
> +#if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
>  #error Invalid KVM version
>   

You might refine this a bit:  if KVM_API_VERSION is not defined, most 
likely linux/kvm.h could not be found, so you might as well report that.

> +#endif
>   


-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] [PATCH] qemu: report issues causing the kvm probe to fail
  2008-12-15 10:30 ` Avi Kivity
@ 2008-12-15 13:26   ` Christian Ehrhardt
  0 siblings, 0 replies; 3+ messages in thread
From: Christian Ehrhardt @ 2008-12-15 13:26 UTC (permalink / raw)
  To: Avi Kivity; +Cc: hollisb, kvm

Avi Kivity wrote:
> Christian Ehrhardt wrote:
>> I ran into the issue of a failign KVM Probe of the qemu configure 
>> script three
>> times this week always needing "set -x", inserting an exit, masking 
>> the cleanup
>> trap and compiling the c file by hand until I knew what the reason 
>> is. I think
>> we could make easier for developers and end users.
>> 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".
>>
>> diff --git a/qemu/configure b/qemu/configure
>> --- a/qemu/configure
>> +++ b/qemu/configure
>> @@ -1037,12 +1037,14 @@ 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)
>> +#if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || 
>> KVM_API_VERSION > 12
>>  #error Invalid KVM version
>>   
>
> You might refine this a bit:  if KVM_API_VERSION is not defined, most 
> likely linux/kvm.h could not be found, so you might as well report that.
>
>> +#endif
>>   
>
>
Updated v2 should appear on the list soon reporting all gcc "error:" 
messages.

-- 

Grüsse / regards, 
Christian Ehrhardt
IBM Linux Technology Center, Open Virtualization


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-12-15 13:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-11 16:40 [PATCH] [PATCH] qemu: report issues causing the kvm probe to fail Christian Ehrhardt
2008-12-15 10:30 ` Avi Kivity
2008-12-15 13:26   ` Christian Ehrhardt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.