On 7/2/20 12:21 PM, Paolo Bonzini wrote: > On 02/07/20 11:38, Paolo Bonzini wrote: >> On 01/07/20 19:54, Philippe Mathieu-Daudé wrote: >>> This code was introduced with SMP support in commit 6a00d60127, >>> later commit 296af7c952 moved CPU parts to cpus.c but forgot this >>> code. Move now and simplify ifdef'ry. >>> >>> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> >>> --- >>> cpus.c | 18 ++++++++++++++++++ >>> exec.c | 22 ---------------------- >>> 2 files changed, 18 insertions(+), 22 deletions(-) >>> >>> diff --git a/cpus.c b/cpus.c >>> index 41d1c5099f..472686cbbc 100644 >>> --- a/cpus.c >>> +++ b/cpus.c >>> @@ -92,6 +92,11 @@ static unsigned int throttle_percentage; >>> #define CPU_THROTTLE_PCT_MAX 99 >>> #define CPU_THROTTLE_TIMESLICE_NS 10000000 >>> >>> +CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus); >>> + >>> +/* current CPU in the current thread. It is only valid inside cpu_exec() */ >>> +__thread CPUState *current_cpu; >>> + >>> bool cpu_is_stopped(CPUState *cpu) >>> { >>> return cpu->stopped || !runstate_is_running(); >>> @@ -134,6 +139,19 @@ static bool all_cpu_threads_idle(void) >>> return true; >>> } >>> >>> +CPUState *qemu_get_cpu(int index) >>> +{ >>> + CPUState *cpu; >>> + >>> + CPU_FOREACH(cpu) { >>> + if (cpu->cpu_index == index) { >>> + return cpu; >>> + } >>> + } >>> + >>> + return NULL; >>> +} >>> + >>> /***********************************************************/ >>> /* guest cycle counter */ >>> >>> diff --git a/exec.c b/exec.c >>> index 21926dc9c7..997b7db15f 100644 >>> --- a/exec.c >>> +++ b/exec.c >>> @@ -98,12 +98,6 @@ AddressSpace address_space_memory; >>> static MemoryRegion io_mem_unassigned; >>> #endif >>> >>> -CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus); >>> - >>> -/* current CPU in the current thread. It is only valid inside >>> - cpu_exec() */ >>> -__thread CPUState *current_cpu; >>> - >>> uintptr_t qemu_host_page_size; >>> intptr_t qemu_host_page_mask; >>> >>> @@ -832,22 +826,6 @@ const VMStateDescription vmstate_cpu_common = { >>> } >>> }; >>> >>> -#endif >>> - >>> -CPUState *qemu_get_cpu(int index) >>> -{ >>> - CPUState *cpu; >>> - >>> - CPU_FOREACH(cpu) { >>> - if (cpu->cpu_index == index) { >>> - return cpu; >>> - } >>> - } >>> - >>> - return NULL; >>> -} >>> - >>> -#if !defined(CONFIG_USER_ONLY) >>> void cpu_address_space_init(CPUState *cpu, int asidx, >>> const char *prefix, MemoryRegion *mr) >>> { >>> >> >> Queued, thanks. >> >> Paolo >> >> > > Wait... this is in exec.c because cpus.c is not linked into user-mode > emulators.
Oops sorry. This should be moved to cpus-common.c then. Will respin.