On Sat, May 28, 2011 at 22:06, Marcus D. Leech<mle...@ripnet.com>  wrote:
I evaluated latency of a FIFO (actually an ordinary pipe, but the kernel
mechanisms are identical), and measured 30usecs average on my
  1.2GHz AMD Phenom system with plenty 'o memory.

I sent timestamps across the FIFO (struct timeval), and the reader grabbed
the local time of day, and computed the difference.  There's
  a fair amount of uncertainty on the reader due to gettimeofday() call
overhead.  But 30usec on a wimpy CPU is certainly comfortably
  below 1msec.
gettimeofday() is a fast function. But if you want real high-fidelity
- read CPU clock counter. Just make sure your app runs on a one
selected core.

Could you post your app and raw results? I'm interested in
min/mean/max values and distribution graphs. Because max values do
play role when playing with real-time.

====== latency_writer.c ========
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
main ()
{
    struct timeval tv;
    while (1)
    {
        gettimeofday (&tv, NULL);
        fwrite (&tv, sizeof(tv), 1, stdout);
        fflush (stdout);
        usleep (250000);
    }
}



============ latency_reader.c ==============
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
main ()
{
    struct timeval now;
    struct timeval sender;
    long long int t1, t2;

    while (fread (&sender, sizeof(sender), 1, stdin) != 0)
    {
        gettimeofday (&now, NULL);
        t1 = sender.tv_sec * 1000000;
        t1 += sender.tv_usec;

        t2 = now.tv_sec * 1000000;
        t2 += now.tv_usec;
        fprintf (stderr, "%lld\n", t2 - t1);
    }
}


I just run it like:

./latency_writer | ./latency_reader



--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to