summaryrefslogtreecommitdiff
path: root/arch_init.c
diff options
context:
space:
mode:
authorAndreas Färber <afaerber@suse.de>2013-07-07 19:50:23 +0200
committerAndreas Färber <afaerber@suse.de>2013-09-03 12:25:55 +0200
commit38fcbd3f08375eb2986b9b63ccd4f593e71aa99d (patch)
tree59da51d17fb6e9aed5da12c26f2bebd8ccfb6dce /arch_init.c
parentbdc44640cb33c90809376a262df871a1144d339a (diff)
cpu: Replace qemu_for_each_cpu()
It was introduced to loop over CPUs from target-independent code, but since commit 182735efaf956ccab50b6d74a4fed163e0f35660 target-independent CPUState is used. A loop can be considered more efficient than function calls in a loop, and CPU_FOREACH() hides implementation details just as well, so use that instead. Suggested-by: Markus Armbruster <armbru@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'arch_init.c')
-rw-r--r--arch_init.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch_init.c b/arch_init.c
index 0471cd5a6b..e47e1399bb 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -1196,15 +1196,14 @@ static void mig_sleep_cpu(void *opq)
much time in the VM. The migration thread will try to catchup.
Workload will experience a performance drop.
*/
-static void mig_throttle_cpu_down(CPUState *cpu, void *data)
-{
- async_run_on_cpu(cpu, mig_sleep_cpu, NULL);
-}
-
static void mig_throttle_guest_down(void)
{
+ CPUState *cpu;
+
qemu_mutex_lock_iothread();
- qemu_for_each_cpu(mig_throttle_cpu_down, NULL);
+ CPU_FOREACH(cpu) {
+ async_run_on_cpu(cpu, mig_sleep_cpu, NULL);
+ }
qemu_mutex_unlock_iothread();
}