[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 10/18] target-i386: cpu: add apic_id argument to cpu_x
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 10/18] target-i386: cpu: add apic_id argument to cpu_x86_register() |
Date: |
Wed, 3 Oct 2012 10:29:06 -0300 |
It's not up to the CPU object to decide its APIC ID, but to the CPU
object creator (that knows about the CPU sockets, cores, and threads
topology).
This keeps the current APIC ID == CPU index behavior, by now.
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 4 ++--
target-i386/cpu.h | 2 +-
target-i386/helper.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index c0db73e..063f5a6 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1726,14 +1726,14 @@ CpuDefinitionInfoList *arch_query_cpu_definitions(Error
**errp)
return cpu_list;
}
-int cpu_x86_register(X86CPU *cpu, const char *cpu_model)
+int cpu_x86_register(X86CPU *cpu, const char *cpu_model, uint32_t apic_id)
{
x86_def_t def1, *def = &def1;
Error *error = NULL;
QDict *features = NULL;
char *name = NULL;
- cpu->env.cpuid_apic_id = env->cpu_index;
+ cpu->env.cpuid_apic_id = apic_id;
/* for CPU subclasses should go into cpu_x86_init() before object_new() */
compat_normalize_cpu_model(cpu_model, &name, &features, &error);
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 5edadd1..f37e80b 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -990,7 +990,7 @@ int cpu_x86_signal_handler(int host_signum, void *pinfo,
void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
uint32_t *eax, uint32_t *ebx,
uint32_t *ecx, uint32_t *edx);
-int cpu_x86_register(X86CPU *cpu, const char *cpu_model);
+int cpu_x86_register(X86CPU *cpu, const char *cpu_model, uint32_t apic_id);
void cpu_clear_apic_feature(CPUX86State *env);
void host_cpuid(uint32_t function, uint32_t count,
uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
diff --git a/target-i386/helper.c b/target-i386/helper.c
index 1d39ba9..70a9f72 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -1249,7 +1249,7 @@ X86CPU *cpu_x86_init(const char *cpu_model)
env = &cpu->env;
env->cpu_model_str = cpu_model;
- if (cpu_x86_register(cpu, cpu_model) < 0) {
+ if (cpu_x86_register(cpu, cpu_model, env->cpu_index) < 0) {
object_delete(OBJECT(cpu));
return NULL;
}
--
1.7.11.4
- [Qemu-devel] [RFC 07/18] kvm: create kvm_arch_vcpu_id() function, (continued)
- [Qemu-devel] [RFC 07/18] kvm: create kvm_arch_vcpu_id() function, Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 13/18] pc: set explicit APIC ID for CPUs, Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 15/18] pc: set fw_cfg data based on APIC ID calculation (v2), Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 14/18] pc: create apic_id_for_cpu() function (v3), Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 18/18] pc: generate APIC IDs according to CPU topology (v3), Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 08/18] target-i386: kvm: set vcpu_id to APIC ID instead of CPU index (v2), Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 17/18] target-i386: topology & APIC ID utility functions (v2), Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 03/18] pc: add PC object argument to some init functions, Eduardo Habkost, 2012/10/03
- [Qemu-devel] [RFC 10/18] target-i386: cpu: add apic_id argument to cpu_x86_register(),
Eduardo Habkost <=