All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viktor STARK <abraar@domain.hid>
To: rpm@xenomai.org
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: Sun, 25 Mar 2007 01:23:31 +0100	[thread overview]
Message-ID: <4605C103.9070609@domain.hid> (raw)
In-Reply-To: <1174776581.6467.15.camel@domain.hid>

Philippe Gerum wrote:
> 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).
>
>   
I knew it was too good to be true. ;)
> 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. 
Right. I guess feeding the same endpoint all the time won't really make 
both sides communicate.
I knew that there was some reason why I hadn't even tried rt_pipe_* in 
user space. Thanks for reminding me what that reason was. :)
> 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...
>
>   

OK. So off I go with rt_queue_*. I'll keep the list posted.

Thanks again for all the support.

Viktor STARK


  reply	other threads:[~2007-03-25  0:23 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
2007-03-25  0:23             ` Viktor STARK [this message]
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=4605C103.9070609@domain.hid \
    --to=abraar@domain.hid \
    --cc=rpm@xenomai.org \
    --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.