From: Daniele Nicolodi <daniele@domain.hid>
To: xenomai@xenomai.org
Subject: [Xenomai-help] First loop iteration increased latency
Date: Mon, 08 Mar 2010 18:15:33 +0100 [thread overview]
Message-ID: <4B9530B5.60809@domain.hid> (raw)
Hello. I'm obtaining quite nice results with Xernomai in my data
acquisition program. However I observe an unexpected behaviour.
My test application works as follow: one process puts a data frame into
a shared memory region and increments a semaphore. Another process waits
on the semaphore, takes the data frame from the shared memory and
processes it. I also place in the shared memory the time (obtained from
clock_gettime(CLOCK_REALTIME, &ts)) the time at which I increment the
semaphore. In the consumer process I look at the time difference between
the stored time and the time at which I read the frame from the shared
memory. In this way I hope to obtain a measurement of the inter process
communication latency.
I obtain a quite satisfactory latency, in the 20-30 usec range. However
the latency for receving the first frame is always much larger: in the
order of 8-10 msec! What can be the cause of such latency?
I'm monitoring xenomai mode switches with pthread_set_mode_np(0,
PTHREAD_WARNSW) and I observe none of those. I thought that maybe I'm
encountering page faults when reading for the first time the shared
memory segment and I tried to "initialize" the memory reading from it in
a very stupid loop:
int i;
char c;
from (i = 0; i < SIZE; i++)
c = ((char *)shm)[i];
but it can be that the compiler is smarter than me and is optimizing the
loop away. What is a better way to issue the page faults in a non
critical section of my code? It would be nice if xenomai would support
MAP_POPULATE mmap() flag.
How can I track the source of this increased latency?
Thanks. Cheers,
--
Daniele
next reply other threads:[~2010-03-08 17:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-08 17:15 Daniele Nicolodi [this message]
2010-03-08 17:24 ` [Xenomai-help] First loop iteration increased latency Gilles Chanteperdrix
2010-03-08 17:39 ` Daniele Nicolodi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B9530B5.60809@domain.hid \
--to=daniele@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.