]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - latester/latester.c
Gather some statistics
[can-benchmark.git] / latester / latester.c
index b3f20029becb8c67e55f9bf95183c7cd9491e8b7..d178e1eb907f990b43b331ce86d06ab2fd88b0e2 100644 (file)
@@ -72,6 +72,10 @@ struct options opt = {
        .length = 2,
 };
 
+struct {
+       unsigned enobufs;
+} stats;
+
 int num_interfaces = 0;
 int count = 0;                 /* Number of sent messages */
 int completion_pipe[2];
@@ -232,9 +236,9 @@ static inline unsigned get_msg_latency_us(struct msg_info *mi)
        struct timespec diff;
        if (num_interfaces == 3)
                if (opt.userhist)
-                       timespec_subtract(&diff, &mi->ts_rx_final_kern, &mi->ts_rx_onwire_kern);
-               else
                        timespec_subtract(&diff, &mi->ts_rx_final, &mi->ts_rx_onwire);
+               else
+                       timespec_subtract(&diff, &mi->ts_rx_final_kern, &mi->ts_rx_onwire_kern);
        else
                if (opt.userhist)
                        timespec_subtract(&diff, &mi->ts_rx_final, &mi->ts_sent);
@@ -532,13 +536,14 @@ void *measure_thread(void *arg)
                        pfd[i].events = POLLIN;
        }
 
-       set_sched_policy_and_prio(SCHED_FIFO, 99);
+       set_sched_policy_and_prio(SCHED_FIFO, 40);
 
 #define SEND()                                                         \
        do {                                                            \
                ret = send_frame(pfd[0].fd);                            \
                if (ret != sizeof(struct can_frame)) {                  \
                        if (ret == -1 && errno == ENOBUFS && opt.period_us == 0 && !opt.oneattime) { \
+                               stats.enobufs++;                        \
                                /* Ignore this error - pfifo_fast qeuue is full */ \
                        } else                                          \
                                error(1, errno, "send_frame (line %d)", __LINE__); \