Message ID | 20200701175432.18892-1-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cpus: Move CPU code from exec.c to cpus.c | expand |
On 7/1/20 10:54 AM, 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é <philmd@redhat.com> > --- > cpus.c | 18 ++++++++++++++++++ > exec.c | 22 ---------------------- > 2 files changed, 18 insertions(+), 22 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
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é <philmd@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
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é <philmd@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. Paolo
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > 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é <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
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é <philmd@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.
Paolo Bonzini <pbonzini@redhat.com> writes: > 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é <philmd@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. cpus-common then?
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) {
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é <philmd@redhat.com> --- cpus.c | 18 ++++++++++++++++++ exec.c | 22 ---------------------- 2 files changed, 18 insertions(+), 22 deletions(-)