- cpu_set_t set;
- int cpu = 0;
-
- char bla[1];
-
- for (int i = 0; i < RANDOM_ARRAY_SIZE; i++)
- random_values[i] = i;
-
- if (argc > 1)
- cpu = atoi(argv[1]);
-
- /* Ensure that memory phase starts and ends on the same CPU */
- CPU_ZERO(&set);
- CPU_SET(cpu, &set);
- if (sched_setaffinity(getpid(), sizeof(set), &set) < 0)
- err(1, "sched_setaffinity");
- printf("Pinned to CPU %d\n", cpu);
-
- volatile long x;
- MGTEST(100000, 1000, MGF_PERIODIC | MGF_MASK_INT, compute_kernel(1000));
- MGTEST(1050000, 2136960000, 0, compute_kernel(1000));
- MGTEST(100000, 500, MGF_PERIODIC, memory_kernel(100000000));
-
- for (int i = 1; i <= 10; i++)
- MGTEST(1000000, 500, 0, x=memory_kernel(1000000));
-
- MGTEST(1000000, 500, 0, x=memory_kernel(100000000));
- MGTEST(1000000, 100000, 0, random_memory_kernel(100000000));
- MGTEST(1000000, 100000000, 0, random_memory_kernel(100000000));
-
- return 0;
+ cpu_set_t set;
+ int cpu = 0;
+
+ for (int i = 0; i < sizeof(memory); i += 64)
+ memory[i] = 1;
+
+ if (argc > 1)
+ cpu = atoi(argv[1]);
+
+ /* Ensure that memory phase starts and ends on the same CPU */
+ CPU_ZERO(&set);
+ CPU_SET(cpu, &set);
+ if (sched_setaffinity(getpid(), sizeof(set), &set) < 0)
+ err(1, "sched_setaffinity");
+ printf("Pinned to CPU %d\n", cpu);
+
+ for (uint64_t flags = 0; flags < 4; flags++) {
+ compute_kernel(1); /* warm up */
+ MGTEST(5000, 10000, flags, compute_kernel(1000));
+ MGTEST(500, 10000, flags, compute_kernel(1000));
+ MGTEST(5000, 10000, flags, compute_kernel(2000));
+ MGTEST(500, 10000, flags, compute_kernel(2000));
+
+ MGTEST(100000, 500000, flags, read_memory(100000));
+ MGTEST(100000, 50000, flags, read_memory(100000));
+ MGTEST(100000, 500000, flags, read_memory_rnd(100000));
+ MGTEST(100000, 50000, flags, read_memory_rnd(100000));
+ MGTEST(100000, 500000, flags, write_memory(100000));
+ MGTEST(100000, 50000, flags, write_memory(100000));
+
+ MGTEST(100000, 5000000, flags, read_memory(1000000));
+ MGTEST(100000, 500000, flags, read_memory(1000000));
+ MGTEST(100000, 5000000, flags, read_memory_rnd(1000000));
+ MGTEST(100000, 500000, flags, read_memory_rnd(1000000));
+ MGTEST(100000, 5000000, flags, write_memory(1000000));
+ MGTEST(100000, 500000, flags, write_memory(1000000));
+
+ printf("\n");
+ }
+ return 0;