lkml.org 
[lkml]   [2011]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 1/5] QEMU Add cpu_phyid_to_cpu() to map cpu phyid to CPUState
Date
From: Liu Ping Fan <pingfank@linux.vnet.ibm.com>

The guest has different cpu logic id from qemu, but they have the
same phyid. When cpu phyid is told by guest, we need to obtain
the corresponding CPUState.

Signed-off-by: Liu Ping Fan <pingfank@linux.vnet.ibm.com>
---
target-i386/cpu.h | 2 ++
target-i386/helper.c | 12 ++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index abdeb40..251e63b 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -767,6 +767,7 @@ typedef struct CPUX86State {
} CPUX86State;

CPUX86State *cpu_x86_init(const char *cpu_model);
+CPUX86State *x86_phyid_to_cpu(int phy_id);
int cpu_x86_exec(CPUX86State *s);
void cpu_x86_close(CPUX86State *s);
void x86_cpu_list (FILE *f, fprintf_function cpu_fprintf, const char *optarg);
@@ -1063,4 +1064,5 @@ void svm_check_intercept(CPUState *env1, uint32_t type);

uint32_t cpu_cc_compute_all(CPUState *env1, int op);

+#define cpu_phyid_to_cpu x86_phyid_to_cpu
#endif /* CPU_I386_H */
diff --git a/target-i386/helper.c b/target-i386/helper.c
index 5df40d4..e35a75e 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -1263,6 +1263,18 @@ CPUX86State *cpu_x86_init(const char *cpu_model)
return env;
}

+CPUX86State *x86_phyid_to_cpu(int phy_id)
+{
+ CPUX86State *env = first_cpu;
+ while (env) {
+ if (env->cpuid_apic_id == phy_id) {
+ break;
+ }
+ env = env->next_cpu;
+ }
+ return env;
+}
+
#if !defined(CONFIG_USER_ONLY)
void do_cpu_init(CPUState *env)
{
--
1.7.4.4


\
 
 \ /
  Last update: 2011-11-27 03:49    [W:0.143 / U:0.664 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site