4 * $DragonFly: src/test/sysperf/mutex1.c,v 1.2 2006/04/22 22:34:06 dillon Exp $
12 main(int ac
, char **av
)
20 printf("Test simple locked bus cycle mutex latency\n");
21 printf("auto-forks two processes for the test with shared memory\n");
22 printf("This test is only useful on a SMP box\n");
25 mtx
= mmap(NULL
, 4096, PROT_READ
|PROT_WRITE
, MAP_SHARED
|MAP_ANON
, -1, 0);
27 while (stop_timing(0, NULL
) == 0) {
28 for (j
= 0; j
< 100; ++j
) {
41 for (count
= 0; count
< max
; count
+= 100) {
42 for (j
= 0; j
< 100; ++j
) {
43 while (try_spin_mtx() != 0)
45 rel_spin_mtx(); /* release */
49 stop_timing(count
, "simple_mtx(uncontested/1cpu)");
51 if ((pid
= fork()) == 0) {
53 for (j
= 0; j
< 100; ++j
) {
54 while (try_spin_mtx() != 0)
56 rel_spin_mtx(); /* release */
62 for (count
= 0; count
< max
; count
+= 100) {
63 for (j
= 0; j
< 100; ++j
) {
64 while (try_spin_mtx() != 0)
66 rel_spin_mtx(); /* release */
70 stop_timing(count
, "simple_mtx");
71 printf("proc1=%d proc2=%d\n", counter
[64], counter
[128]);