summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-09-16 12:26:04 +0300
committerMarcelo Tosatti <mtosatti@redhat.com>2009-09-16 16:00:52 -0300
commit77914e6b29a1574a0323a469e19db5c6b38c6744 (patch)
tree7317752243594ce4bdb9555ba33671338d1f5b78 /kvm/user/test/x86/cstart64.S
parenttest: initialize apic/x2apic on all processors (diff)
downloadqemu-kvm-77914e6b29a1574a0323a469e19db5c6b38c6744.tar.gz
qemu-kvm-77914e6b29a1574a0323a469e19db5c6b38c6744.tar.bz2
qemu-kvm-77914e6b29a1574a0323a469e19db5c6b38c6744.zip
test: wait for all processors to complete initialization
so we can start blasting them with IPIs. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'kvm/user/test/x86/cstart64.S')
-rw-r--r--kvm/user/test/x86/cstart64.S7
1 files changed, 7 insertions, 0 deletions
diff --git a/kvm/user/test/x86/cstart64.S b/kvm/user/test/x86/cstart64.S
index 54b721fcf..e5554baff 100644
--- a/kvm/user/test/x86/cstart64.S
+++ b/kvm/user/test/x86/cstart64.S
@@ -152,6 +152,7 @@ ap_start64:
call enable_x2apic
sti
nop
+ lock incw cpu_online_count
1: hlt
jmp 1b
@@ -203,5 +204,11 @@ smp_init:
movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_INIT | APIC_INT_ASSERT), APIC_ICR(%rax)
movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_INIT), APIC_ICR(%rax)
movl $(APIC_DEST_ALLBUT | APIC_DEST_PHYSICAL | APIC_DM_STARTUP), APIC_ICR(%rax)
+ call fwcfg_get_nb_cpus
+1: pause
+ cmpw %ax, cpu_online_count
+ jne 1b
smp_init_done:
ret
+
+cpu_online_count: .word 1