Commit 741a26865c0ebadb7d27b1d33ced2dd55a4cc07f

Authored by Aravind Kumar
1 parent 91a330bc1a
Exists in master

CPU Measurement # 2 loop overhead

Showing 1 changed file with 2 additions and 2 deletions Inline Diff

cpu/loop_overhead_time.c View file @ 741a268
#include <stdio.h> 1 1 #include <stdio.h>
2 2
int main() 3 3 int main()
{ 4 4 {
int time1, time2, sum=0; 5 5 int time1, time2, sum=0;
int i; 6 6 int i;
int avg = 0; 7 7 int avg = 0;
asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r" (i)); 8 8 asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r" (i));
9 9
while(sum < 100) { 10 10 while(sum < 100) {
asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (time1)); 11 11 asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (time1));
for (i = 0; i < 1000; i++); 12 12 for (i = 0; i < 1000; i++);
asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (time2)); 13 13 asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (time2));
sum++; 14 14 avg = (time2 - time1 - 5);
avg += (time2 - time1 - 5); 15
printf("Loop overhead: %u\n", avg/(1000)); 16 15 printf("Loop overhead: %u\n", avg/(1000));
16 sum++;
} 17 17 }