[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/3] cpu: Reorder cpu->as, cpu->thread_id, cpu->memo
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PATCH 3/3] cpu: Reorder cpu->as, cpu->thread_id, cpu->memory_dispatch init |
Date: |
Mon, 27 Apr 2015 17:00:33 -0300 |
Instead of initializing cpu->as, cpu->thread_id, and reloading memory
map while holding cpu_list_lock(), do it earlier, before locking the CPU
list and initializing cpu_index.
This allows the code handling cpu_index and global CPU list to be
isolated from the rest.
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
Changes v1 -> v2:
* Rebased and moved the new cpu_reload_memory_map(cpu) line
* Reviewed-by from Igor not kept because more complex code is
now being moved
---
exec.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/exec.c b/exec.c
index 8d5d844..e2c438a 100644
--- a/exec.c
+++ b/exec.c
@@ -537,6 +537,12 @@ void cpu_exec_init(CPUArchState *env)
CPUState *some_cpu;
int cpu_index;
+#ifndef CONFIG_USER_ONLY
+ cpu->as = &address_space_memory;
+ cpu->thread_id = qemu_get_thread_id();
+ cpu_reload_memory_map(cpu);
+#endif
+
#if defined(CONFIG_USER_ONLY)
cpu_list_lock();
#endif
@@ -545,11 +551,6 @@ void cpu_exec_init(CPUArchState *env)
cpu_index++;
}
cpu->cpu_index = cpu_index;
-#ifndef CONFIG_USER_ONLY
- cpu->as = &address_space_memory;
- cpu->thread_id = qemu_get_thread_id();
- cpu_reload_memory_map(cpu);
-#endif
QTAILQ_INSERT_TAIL(&cpus, cpu, node);
#if defined(CONFIG_USER_ONLY)
cpu_list_unlock();
--
2.1.0