[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 11/11] remove smp restriction from kvm
From: |
Glauber Costa |
Subject: |
[Qemu-devel] [PATCH 11/11] remove smp restriction from kvm |
Date: |
Wed, 2 Dec 2009 11:48:22 -0200 |
We don't support smp without irqchip in kernel, so only abort in
that situation
Signed-off-by: Glauber Costa <address@hidden>
---
kvm-all.c | 10 +++++-----
kvm.h | 2 ++
target-i386/kvm.c | 7 +++++++
target-ppc/kvm.c | 5 +++++
4 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/kvm-all.c b/kvm-all.c
index 22d84a3..b17bd74 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -427,7 +427,12 @@ static int kvm_create_irqchip(KVMState *s)
return ret;
s->irqchip_in_kernel = 1;
+
#endif
+ if (!kvm_arch_can_smp() && (smp_cpus > 1)) {
+ fprintf(stderr, "No SMP KVM support, use '-smp 1'\n");
+ ret = -EINVAL;
+ }
return ret;
}
@@ -440,11 +445,6 @@ int kvm_init(int smp_cpus)
int ret;
int i;
- if (smp_cpus > 1) {
- fprintf(stderr, "No SMP KVM support, use '-smp 1'\n");
- return -EINVAL;
- }
-
s = qemu_mallocz(sizeof(KVMState));
#ifdef KVM_CAP_SET_GUEST_DEBUG
diff --git a/kvm.h b/kvm.h
index 7b9d8b3..91a4bf4 100644
--- a/kvm.h
+++ b/kvm.h
@@ -101,6 +101,8 @@ int kvm_arch_init_vcpu(CPUState *env);
void kvm_arch_reset_vcpu(CPUState *env);
+int kvm_arch_can_smp(void);
+
#ifdef TARGET_I386
int kvm_set_lapic(CPUState *env, struct kvm_lapic_state *s);
int kvm_get_lapic(CPUState *env, struct kvm_lapic_state *s);
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 65ad2a1..cea0cf1 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -1171,3 +1171,10 @@ int kvm_get_lapic(CPUState *env, struct kvm_lapic_state
*s)
return kvm_vcpu_ioctl(env, KVM_GET_LAPIC, s);
}
+
+int kvm_arch_can_smp(void)
+{
+ if (kvm_irqchip_in_kernel())
+ return 1;
+ return 0;
+}
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index d08639b..cfe467f 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -62,6 +62,11 @@ int kvm_arch_set_irq(KVMState *s, int irq, int level, int
*status)
return -ENOSYS;
}
+int kvm_arch_can_smp(void)
+{
+ return 0;
+}
+
int kvm_arch_put_registers(CPUState *env)
{
struct kvm_regs regs;
--
1.6.5.2
- [Qemu-devel] [PATCH 01/11] Don't mess with halted state., (continued)
- [Qemu-devel] [PATCH 01/11] Don't mess with halted state., Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 02/11] store thread-specific env information, Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 03/11] update halted state on mp_state sync, Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 04/11] qemu_flush_work for remote vcpu execution, Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 05/11] tell kernel about all registers instead of just mp_state, Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 06/11] flush state in migration post_load, Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 07/11] Don't call kvm cpu reset on initialization, Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 08/11] use cpu_kick instead of direct signalling., Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 09/11] Use per-cpu reset handlers., Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 10/11] Use __thread where available., Glauber Costa, 2009/12/02
- [Qemu-devel] [PATCH 11/11] remove smp restriction from kvm,
Glauber Costa <=
- [Qemu-devel] Re: [PATCH 11/11] remove smp restriction from kvm, Avi Kivity, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 11/11] remove smp restriction from kvm, Glauber Costa, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 11/11] remove smp restriction from kvm, Avi Kivity, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 11/11] remove smp restriction from kvm, Glauber Costa, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 11/11] remove smp restriction from kvm, Avi Kivity, 2009/12/03
- [Qemu-devel] Re: [PATCH 04/11] qemu_flush_work for remote vcpu execution, Avi Kivity, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 04/11] qemu_flush_work for remote vcpu execution, Glauber Costa, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 04/11] qemu_flush_work for remote vcpu execution, Avi Kivity, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 04/11] qemu_flush_work for remote vcpu execution, Glauber Costa, 2009/12/03
- Re: [Qemu-devel] Re: [PATCH 04/11] qemu_flush_work for remote vcpu execution, Avi Kivity, 2009/12/03