From: Philippe Gerum <rpm@xenomai.org>
To: Viktor STARK <abraar@domain.hid>
Cc: Viktor STARK <stark.viktor@domain.hid>,
Xenomai help <xenomai@xenomai.org>
Subject: Re: [Xenomai-help] [RT_PIPE] - User space read() not waking up
Date: Sat, 24 Mar 2007 23:49:41 +0100 [thread overview]
Message-ID: <1174776581.6467.15.camel@domain.hid> (raw)
In-Reply-To: <4605149A.5090802@domain.hid>
On Sat, 2007-03-24 at 13:07 +0100, Viktor STARK wrote:
> >
> That looks like a pretty good solution. I'll be able to test this out on
> Monday. I'll keep the list posted about my results.
Yeah, well, except that my last post was utter crap actually. I should
really consider having sleep because I don't even remember how my code
works, it seems. Ok, here is a fixed version: to sum up, you need to use
rt_queues to do what you want to do, i.e. exchanging data in primary
mode between real-time tasks. Performance-wise, there is no downside in
using queues instead of pipes anyway, except when rt_pipe_stream() is
actually appropriate for the sending side (i.e. when data is produced
incrementally by small chunks, and the reader has lower priority than
the sender).
What I sketched would not work because rt_pipe_stream/read/write used
from user-space would still feed the real-time endpoint of a pipe, which
could only be read from a non real-time endpoint. IOW, there is no way
to use pipes for RT to RT communication, because data sent using
rt_pipe_write() is only readable by read(), and data wrote by write() is
only readable from rt_pipe_read(). The rt_pipe API is available from
user-space in order to feed regular Linux tasks with real-time data
produced from a user-space context, that's all.
Sorry for the noise. Yes Dmitry, I'm going to take a nap right now, in
order to fix this annoying -ENOBRAIN error that surges from time to
time. Gasp...
--
Philippe.
next prev parent reply other threads:[~2007-03-24 22:49 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-22 21:57 [Xenomai-help] [RT_PIPE] - User space read() not waking up Viktor Stark
2007-03-23 8:38 ` Jan Kiszka
2007-03-23 8:42 ` Dmitry Adamushko
2007-03-23 8:49 ` Jan Kiszka
2007-03-24 1:48 ` Viktor STARK
[not found] ` <460481F2.5010408@domain.hid>
2007-03-24 10:20 ` Dmitry Adamushko
2007-03-24 11:55 ` Philippe Gerum
2007-03-24 12:07 ` Viktor STARK
2007-03-24 22:49 ` Philippe Gerum [this message]
2007-03-25 0:23 ` Viktor STARK
2007-03-24 22:36 ` [off-list] " Dmitry Adamushko
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=1174776581.6467.15.camel@domain.hid \
--to=rpm@xenomai.org \
--cc=abraar@domain.hid \
--cc=stark.viktor@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.