xref: /kvm-unit-tests/x86/smptest.c (revision 7db17e21adeedeba0f421f4c23f13934577f0264)
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("IPI to each CPU", nipis == ncpus);
30     return report_summary();
31 }
32