xref: /kvm-unit-tests/x86/smptest.c (revision a299895b7abb54e7ba6bb4108f202acbb484ac65)
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     smp_init();
23 
24     ncpus = cpu_count();
25     printf("found %d cpus\n", ncpus);
26     for (i = 0; i < ncpus; ++i)
27 	on_cpu(i, ipi_test, (void *)(long)i);
28 
29     report(nipis == ncpus, "IPI to each CPU");
30     return report_summary();
31 }
32