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