qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] KVM: Use -cpu host as default on x86
@ 2011-10-13 15:24 Alexander Graf
  2011-10-29 18:08 ` Alexander Graf
  2011-11-01 16:44 ` Anthony Liguori
  0 siblings, 2 replies; 3+ messages in thread
From: Alexander Graf @ 2011-10-13 15:24 UTC (permalink / raw)
  To: qemu-devel

When running QEMU without -cpu parameter, the user usually wants a sane
default. So far, we're using the qemu64/qemu32 CPU type, which basically
means "the maximum TCG can emulate".

That's a really good default when using TCG, but when running with KVM
we much rather want a default saying "the maximum KVM can support".

Fortunately we already have such a CPU type. It's called "host". All we
need to do is to select it by default when not getting a -cpu passed in.

This fixes a lot of subtile breakage in the GNU toolchain (libgmp) which
hicks up on QEMU's non-existent CPU models.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/pc.c      |   10 +++++++---
 hw/pc.h      |    2 +-
 hw/pc_piix.c |    2 +-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index 203627d..e0c48f2 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -941,17 +941,21 @@ static CPUState *pc_new_cpu(const char *cpu_model)
     return env;
 }
 
-void pc_cpus_init(const char *cpu_model)
+void pc_cpus_init(const char *cpu_model, int kvm_enabled)
 {
     int i;
 
     /* init CPUs */
     if (cpu_model == NULL) {
+        if (kvm_enabled) {
+            cpu_model = "host";
+        } else {
 #ifdef TARGET_X86_64
-        cpu_model = "qemu64";
+            cpu_model = "qemu64";
 #else
-        cpu_model = "qemu32";
+            cpu_model = "qemu32";
 #endif
+        }
     }
 
     for(i = 0; i < smp_cpus; i++) {
diff --git a/hw/pc.h b/hw/pc.h
index f3e21b6..b5519ff 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -130,7 +130,7 @@ void pc_register_ferr_irq(qemu_irq irq);
 void pc_cmos_set_s3_resume(void *opaque, int irq, int level);
 void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
 
-void pc_cpus_init(const char *cpu_model);
+void pc_cpus_init(const char *cpu_model, int kvm_enabled);
 void pc_memory_init(MemoryRegion *system_memory,
                     const char *kernel_filename,
                     const char *kernel_cmdline,
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index ce1c87f..a080191 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -99,7 +99,7 @@ static void pc_init1(MemoryRegion *system_memory,
     MemoryRegion *pci_memory;
     MemoryRegion *rom_memory;
 
-    pc_cpus_init(cpu_model);
+    pc_cpus_init(cpu_model, kvm_enabled());
 
     if (kvmclock_enabled) {
         kvmclock_create();
-- 
1.7.3.4

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

* Re: [Qemu-devel] [PATCH] KVM: Use -cpu host as default on x86
  2011-10-13 15:24 [Qemu-devel] [PATCH] KVM: Use -cpu host as default on x86 Alexander Graf
@ 2011-10-29 18:08 ` Alexander Graf
  2011-11-01 16:44 ` Anthony Liguori
  1 sibling, 0 replies; 3+ messages in thread
From: Alexander Graf @ 2011-10-29 18:08 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-devel@nongnu.org Developers, Avi Kivity


On 13.10.2011, at 17:24, Alexander Graf wrote:

> When running QEMU without -cpu parameter, the user usually wants a sane
> default. So far, we're using the qemu64/qemu32 CPU type, which basically
> means "the maximum TCG can emulate".
> 
> That's a really good default when using TCG, but when running with KVM
> we much rather want a default saying "the maximum KVM can support".
> 
> Fortunately we already have such a CPU type. It's called "host". All we
> need to do is to select it by default when not getting a -cpu passed in.
> 
> This fixes a lot of subtile breakage in the GNU toolchain (libgmp) which
> hicks up on QEMU's non-existent CPU models.

Ping?


Alex

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

* Re: [Qemu-devel] [PATCH] KVM: Use -cpu host as default on x86
  2011-10-13 15:24 [Qemu-devel] [PATCH] KVM: Use -cpu host as default on x86 Alexander Graf
  2011-10-29 18:08 ` Alexander Graf
@ 2011-11-01 16:44 ` Anthony Liguori
  1 sibling, 0 replies; 3+ messages in thread
From: Anthony Liguori @ 2011-11-01 16:44 UTC (permalink / raw)
  To: Alexander Graf; +Cc: qemu-devel

On 10/13/2011 10:24 AM, Alexander Graf wrote:
> When running QEMU without -cpu parameter, the user usually wants a sane
> default. So far, we're using the qemu64/qemu32 CPU type, which basically
> means "the maximum TCG can emulate".
>
> That's a really good default when using TCG, but when running with KVM
> we much rather want a default saying "the maximum KVM can support".
>
> Fortunately we already have such a CPU type. It's called "host". All we
> need to do is to select it by default when not getting a -cpu passed in.
>
> This fixes a lot of subtile breakage in the GNU toolchain (libgmp) which
> hicks up on QEMU's non-existent CPU models.
>
> Signed-off-by: Alexander Graf<agraf@suse.de>

Need to make sure that older machine types (i.e. pc-0.15, pc-0.14) default to 
the appropriate CPU model.

Regards,

Anthony Liguori

> ---
>   hw/pc.c      |   10 +++++++---
>   hw/pc.h      |    2 +-
>   hw/pc_piix.c |    2 +-
>   3 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/hw/pc.c b/hw/pc.c
> index 203627d..e0c48f2 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -941,17 +941,21 @@ static CPUState *pc_new_cpu(const char *cpu_model)
>       return env;
>   }
>
> -void pc_cpus_init(const char *cpu_model)
> +void pc_cpus_init(const char *cpu_model, int kvm_enabled)
>   {
>       int i;
>
>       /* init CPUs */
>       if (cpu_model == NULL) {
> +        if (kvm_enabled) {
> +            cpu_model = "host";
> +        } else {
>   #ifdef TARGET_X86_64
> -        cpu_model = "qemu64";
> +            cpu_model = "qemu64";
>   #else
> -        cpu_model = "qemu32";
> +            cpu_model = "qemu32";
>   #endif
> +        }
>       }
>
>       for(i = 0; i<  smp_cpus; i++) {
> diff --git a/hw/pc.h b/hw/pc.h
> index f3e21b6..b5519ff 100644
> --- a/hw/pc.h
> +++ b/hw/pc.h
> @@ -130,7 +130,7 @@ void pc_register_ferr_irq(qemu_irq irq);
>   void pc_cmos_set_s3_resume(void *opaque, int irq, int level);
>   void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
>
> -void pc_cpus_init(const char *cpu_model);
> +void pc_cpus_init(const char *cpu_model, int kvm_enabled);
>   void pc_memory_init(MemoryRegion *system_memory,
>                       const char *kernel_filename,
>                       const char *kernel_cmdline,
> diff --git a/hw/pc_piix.c b/hw/pc_piix.c
> index ce1c87f..a080191 100644
> --- a/hw/pc_piix.c
> +++ b/hw/pc_piix.c
> @@ -99,7 +99,7 @@ static void pc_init1(MemoryRegion *system_memory,
>       MemoryRegion *pci_memory;
>       MemoryRegion *rom_memory;
>
> -    pc_cpus_init(cpu_model);
> +    pc_cpus_init(cpu_model, kvm_enabled());
>
>       if (kvmclock_enabled) {
>           kvmclock_create();

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

end of thread, other threads:[~2011-11-01 16:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-13 15:24 [Qemu-devel] [PATCH] KVM: Use -cpu host as default on x86 Alexander Graf
2011-10-29 18:08 ` Alexander Graf
2011-11-01 16:44 ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).