[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 08/16] cpu: add helper cpu_exists(), to check if
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 08/16] cpu: add helper cpu_exists(), to check if CPU with specified id exists |
Date: |
Mon, 22 Apr 2013 13:28:12 +0300 |
On Tue, Apr 16, 2013 at 12:12:48AM +0200, Igor Mammedov wrote:
> ... it should be used only on slow path since it does recursive search
> on /machine QOM tree for objects of TYPE_CPU
>
> Signed-off-by: Igor Mammedov <address@hidden>
> Reviewed-by: Paolo Bonzini <address@hidden>
I would prefer qemu_for_each_cpu, that is also useful for ACPI. And do
we need to scan all QOM? This will take a while to repeat if there are
many devices.
How about the below? You can add a wrapper that sets
a bit if CPU exists.
commit 4ff1332ff56069574f450bb44819156bd91bd105
Author: Michael S. Tsirkin <address@hidden>
Date: Sun Apr 21 15:44:47 2013 +0300
exec: add qemu_for_each_cpu
Will be used by ACPI table generation.
Signed-off-by: Michael S. Tsirkin <address@hidden>
diff --git a/exec.c b/exec.c
index fa1e0c3..2b44cbe 100644
--- a/exec.c
+++ b/exec.c
@@ -265,6 +265,19 @@ CPUState *qemu_get_cpu(int index)
return env ? cpu : NULL;
}
+void qemu_for_each_cpu( void (*func)( CPUState *c, void *arg), void *arg)
+{
+ CPUArchState *env = first_cpu;
+ CPUState *cpu;
+
+ while (env) {
+ cpu = ENV_GET_CPU(env);
+ func(cpu, arg);
+ env = env->next_cpu;
+ }
+}
+
+
void cpu_exec_init(CPUArchState *env)
{
CPUState *cpu = ENV_GET_CPU(env);
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 3664a1b..db857e3 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -223,6 +223,8 @@ void run_on_cpu(CPUState *cpu, void (*func)(void *data),
void *data);
*/
CPUState *qemu_get_cpu(int index);
+void qemu_for_each_cpu( void (*func)( CPUState *c, void *arg), void *arg);
+
#ifndef CONFIG_USER_ONLY
typedef void (*CPUInterruptHandler)(CPUState *, int);
- Re: [Qemu-devel] [PATCH 06/16] target-i386: pc: update rtc_cmos on CPU hot-plug, (continued)
- [Qemu-devel] [PATCH 07/16] cpu: introduce get_arch_id() method and override it for target-i386, Igor Mammedov, 2013/04/15
- [Qemu-devel] [PATCH 08/16] cpu: add helper cpu_exists(), to check if CPU with specified id exists, Igor Mammedov, 2013/04/15
- Re: [Qemu-devel] [PATCH 08/16] cpu: add helper cpu_exists(), to check if CPU with specified id exists,
Michael S. Tsirkin <=
- [Qemu-devel] [PATCH 09/16] acpi_piix4: add infrastructure to send CPU hot-plug GPE to guest, Igor Mammedov, 2013/04/15
- [Qemu-devel] [PATCH 10/16] target-i386: introduce apic-id property, Igor Mammedov, 2013/04/15
- [Qemu-devel] [PATCH 11/16] introduce ICC bus/device/bridge, Igor Mammedov, 2013/04/15