]> rtime.felk.cvut.cz Git - frescor/frsh.git/commitdiff
added statistics to pinpong test
authorMartin Molnar <molnam1@fel.cvut.cz>
Tue, 17 Mar 2009 01:08:23 +0000 (02:08 +0100)
committerMartin Molnar <molnam1@fel.cvut.cz>
Tue, 17 Mar 2009 01:08:23 +0000 (02:08 +0100)
frsh_api/tests/pingpong/ping.c

index f063ba8ce010320fb7bf43460c994e70b534cec6..8c6a973cddf7205db5136922525c842bc6f5e79e 100644 (file)
@@ -23,6 +23,12 @@ size_t msg_size = MSGBUFFSIZE;
 int exit_flag = 0;
 int node_id = 0;
 
+/** statistics */
+long int max = 0; /* maximum delay */
+long int min = 0; /* minimum delay */
+long int avg = 0; /* average delay */
+
+
 inline void timespec_sub(struct timespec *diff, const struct timespec *left,
              const struct timespec *right)
 {
@@ -108,6 +114,7 @@ void* receiver()
        struct timespec recvtime;
        struct timespec sendtime;
        struct timespec difftime;
+       long int tmp;
        
        recv_pinfo.body = NULL;
        /* local_addr should be handled when creating socket */
@@ -117,7 +124,7 @@ void* receiver()
        }
        printf("Receive endpoint created\n");
        
-       count = 1;
+       count = 0;
        while (count != num_msg){
                count++;
                if ((frsh_receive_sync(repoint, msg, msg_size, &len, 
@@ -129,11 +136,19 @@ void* receiver()
                sscanf(msg,"msg%d-%ld-%ld", &count, 
                                &sendtime.tv_sec, &sendtime.tv_nsec);
                clock_gettime(CLOCK_MONOTONIC, &recvtime);
-               timespec_sub(&difftime, &recvtime, &sendtime);  
-               printf("Ping: Received - %s\n time= %ld us\n", msg, 
-                               difftime.tv_nsec / 1000);
+               timespec_sub(&difftime, &recvtime, &sendtime);
+               tmp =  difftime.tv_sec * 1000 + 
+                               difftime.tv_nsec / 1000000;
+               if (tmp > max) 
+                       max = tmp;
+               if (tmp < min) 
+                       min = tmp;
+               avg += tmp;
+
+               printf("Ping: Received - %s\n", msg);
        }
-       
+
+       printf("Min= %ld ms Max = %ld ms Avg = %ld ms\n", min, max, avg/count);
        /* TODO: destroy vres and send enpoint */
 
        return NULL;