提交 e479c207 编写于 作者: J Jan Kiszka 提交者: Avi Kivity

kvm: Set cpu_single_env only once

As we have thread-local cpu_single_env now and KVM uses exactly one
thread per VCPU, we can drop the cpu_single_env updates from the loop
and initialize this variable only once during setup.
Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: NAvi Kivity <avi@redhat.com>
上级 d1f86636
...@@ -714,6 +714,7 @@ static void *qemu_kvm_cpu_thread_fn(void *arg) ...@@ -714,6 +714,7 @@ static void *qemu_kvm_cpu_thread_fn(void *arg)
qemu_mutex_lock(&qemu_global_mutex); qemu_mutex_lock(&qemu_global_mutex);
qemu_thread_get_self(env->thread); qemu_thread_get_self(env->thread);
env->thread_id = qemu_get_thread_id(); env->thread_id = qemu_get_thread_id();
cpu_single_env = env;
r = kvm_init_vcpu(env); r = kvm_init_vcpu(env);
if (r < 0) { if (r < 0) {
......
...@@ -1118,8 +1118,6 @@ int kvm_cpu_exec(CPUState *env) ...@@ -1118,8 +1118,6 @@ int kvm_cpu_exec(CPUState *env)
return EXCP_HLT; return EXCP_HLT;
} }
cpu_single_env = env;
do { do {
if (env->kvm_vcpu_dirty) { if (env->kvm_vcpu_dirty) {
kvm_arch_put_registers(env, KVM_PUT_RUNTIME_STATE); kvm_arch_put_registers(env, KVM_PUT_RUNTIME_STATE);
...@@ -1136,13 +1134,11 @@ int kvm_cpu_exec(CPUState *env) ...@@ -1136,13 +1134,11 @@ int kvm_cpu_exec(CPUState *env)
*/ */
qemu_cpu_kick_self(); qemu_cpu_kick_self();
} }
cpu_single_env = NULL;
qemu_mutex_unlock_iothread(); qemu_mutex_unlock_iothread();
run_ret = kvm_vcpu_ioctl(env, KVM_RUN, 0); run_ret = kvm_vcpu_ioctl(env, KVM_RUN, 0);
qemu_mutex_lock_iothread(); qemu_mutex_lock_iothread();
cpu_single_env = env;
kvm_arch_post_run(env, run); kvm_arch_post_run(env, run);
kvm_flush_coalesced_mmio_buffer(); kvm_flush_coalesced_mmio_buffer();
...@@ -1206,7 +1202,6 @@ int kvm_cpu_exec(CPUState *env) ...@@ -1206,7 +1202,6 @@ int kvm_cpu_exec(CPUState *env)
} }
env->exit_request = 0; env->exit_request = 0;
cpu_single_env = NULL;
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册