xref: /kvm-unit-tests/x86/smptest.c (revision 7d36db351752e29ad27eaafe3f102de7064e429b)
1*7d36db35SAvi Kivity #include "libcflat.h"
2*7d36db35SAvi Kivity #include "smp.h"
3*7d36db35SAvi Kivity 
4*7d36db35SAvi Kivity static void ipi_test(void *data)
5*7d36db35SAvi Kivity {
6*7d36db35SAvi Kivity     int n = (long)data;
7*7d36db35SAvi Kivity 
8*7d36db35SAvi Kivity     printf("ipi called, cpu %d\n", n);
9*7d36db35SAvi Kivity     if (n != smp_id())
10*7d36db35SAvi Kivity 	printf("but wrong cpu %d\n", smp_id());
11*7d36db35SAvi Kivity }
12*7d36db35SAvi Kivity 
13*7d36db35SAvi Kivity int main()
14*7d36db35SAvi Kivity {
15*7d36db35SAvi Kivity     int ncpus;
16*7d36db35SAvi Kivity     int i;
17*7d36db35SAvi Kivity 
18*7d36db35SAvi Kivity     smp_init();
19*7d36db35SAvi Kivity 
20*7d36db35SAvi Kivity     ncpus = cpu_count();
21*7d36db35SAvi Kivity     printf("found %d cpus\n", ncpus);
22*7d36db35SAvi Kivity     for (i = 0; i < ncpus; ++i)
23*7d36db35SAvi Kivity 	on_cpu(i, ipi_test, (void *)(long)i);
24*7d36db35SAvi Kivity     return 0;
25*7d36db35SAvi Kivity }
26