[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/27] kvm: create kvm_arch_vcpu_id() function
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PATCH 05/27] kvm: create kvm_arch_vcpu_id() function |
Date: |
Wed, 24 Oct 2012 15:49:39 -0200 |
This will allow each architecture to define how the VCPU ID is set on
the KVM_CREATE_VCPU ioctl call.
Signed-off-by: Eduardo Habkost <address@hidden>
---
kvm-all.c | 2 +-
kvm.h | 3 +++
target-i386/kvm.c | 5 +++++
target-ppc/kvm.c | 5 +++++
target-s390x/kvm.c | 5 +++++
5 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/kvm-all.c b/kvm-all.c
index 961e1db..2eedf9a 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -222,7 +222,7 @@ int kvm_init_vcpu(CPUArchState *env)
DPRINTF("kvm_init_vcpu\n");
- ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpu_index);
+ ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, kvm_arch_vcpu_id(env));
if (ret < 0) {
DPRINTF("kvm_create_vcpu failed\n");
goto err;
diff --git a/kvm.h b/kvm.h
index 2b26dcb..95f86a4 100644
--- a/kvm.h
+++ b/kvm.h
@@ -179,6 +179,9 @@ int kvm_arch_init(KVMState *s);
int kvm_arch_init_vcpu(CPUArchState *env);
+/* Returns VCPU ID to be used on KVM_CREATE_VCPU ioctl() */
+unsigned long kvm_arch_vcpu_id(CPUArchState *env);
+
void kvm_arch_reset_vcpu(CPUArchState *env);
int kvm_arch_on_sigbus_vcpu(CPUArchState *env, int code, void *addr);
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 3aa62b2..6e82125 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -353,6 +353,11 @@ static void cpu_update_state(void *opaque, int running,
RunState state)
}
}
+unsigned long kvm_arch_vcpu_id(CPUArchState *env)
+{
+ return env->cpu_index;
+}
+
int kvm_arch_init_vcpu(CPUX86State *env)
{
struct {
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index 5cbe98a..76b3fd0 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -373,6 +373,11 @@ static inline void kvm_fixup_page_sizes(CPUPPCState *env)
#endif /* !defined (TARGET_PPC64) */
+unsigned long kvm_arch_vcpu_id(CPUArchState *env)
+{
+ return env->cpu_index;
+}
+
int kvm_arch_init_vcpu(CPUPPCState *cenv)
{
int ret;
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index 07edf93..9e4c6c6 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -72,6 +72,11 @@ int kvm_arch_init(KVMState *s)
return 0;
}
+unsigned long kvm_arch_vcpu_id(CPUArchState *env)
+{
+ return env->cpu_index;
+}
+
int kvm_arch_init_vcpu(CPUS390XState *env)
{
int ret = 0;
--
1.7.11.7
- [Qemu-devel] Subject: [PATCH 00/27] Fix APIC-ID-based CPU topology, take 3, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 03/27] hw/apic.c: rename bit functions to not conflict with bitops.h, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 04/27] target-i386: initialize APIC at CPU level, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 19/27] cpu_x86_init: check for x86_cpu_realize() errors, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 14/27] pc: use FWCfgState* instead of void* for fw_cfg data, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 26/27] pc: create separate init function for pc-1.3, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 05/27] kvm: create kvm_arch_vcpu_id() function,
Eduardo Habkost <=
- [Qemu-devel] [PATCH 11/27] pc: add PC_DEFAULT_CPU_MODEL #define, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 01/27] move I/O-related definitions from qemu-common.h to a new header (qemu-stdio.h), Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 20/27] target-i386: do not call x86_cpu_realize() on cpu_x86_init(), Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 23/27] pc: set fw_cfg data based on APIC ID calculation, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 02/27] cpus.h: include qemu-stdio.h, Eduardo Habkost, 2012/10/24
- [Qemu-devel] [PATCH 12/27] pc: add PCInitArgs parameter to pc_cpus_init(), Eduardo Habkost, 2012/10/24