From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: "Rus V. Brushkoff" <rus@domain.hid>
Cc: Xenomai help <xenomai@xenomai.org>
Subject: Re: [Xenomai-help] Deprecated kernel system calls in xenomai-head and new application development paradigm
Date: Wed, 02 Sep 2009 13:37:59 +0200 [thread overview]
Message-ID: <4A9E5917.8060200@domain.hid> (raw)
In-Reply-To: <Pine.LNX.4.64.0909021418300.22914@domain.hid>
Rus V. Brushkoff wrote:
> On Wed, 2 Sep 2009, Gilles Chanteperdrix wrote:
>
> :> :> :Using the RTDM skin.
> :> :> Can you show this paradigm on pipe.c exmaple from Xenomai docs ?
> :> :We are talking about drivers, then just design your driver as you would
> :> :design a Linux driver.
> :> :For instance, you would implement the "write" method of the driver to
> :> :pass data between the user-space task and the driver.
> :> This is RT driver not simply Linux driver. The previous rt_pipe_read()
> :> call was running in RT task context. Now it is not clear how this can be
> :> achieved with new RTDM driver model in kernel space.
> :
> :The write method of an RTDM driver can run in rt context too. If the
> :task which issues the call to "write" is a Xenomai user-space task
> :running in primary mode.
>
> Please note - I do not have any Xenomai user-space tasks running - only
> normal user space programs. The Xenomai-2.4 allows developing of RT driver
> in kernel space - leaving untouchable user space processes. If such new
> paradigm need to write the intermediate user-space RT task proxy - than
> it is wrong. Simply because its adds unneeded complexity to developing RT
> kernel hardware drivers.
You do not need a proxy. What you need to do is to create the previous
non real-time task as a Xenomai task, using rt_task_create, or the
Xenomai posix skin's pthread_create. Then you would change this task to
use RTDM's write instead of write. That is all. Everything else stays
the same. And as an additonal benefit, you have one less task running if
you can avoid to create the kernel-space task, and do everything in the
write callback.
Separating clearly the driver code running in kernel-space from the
application code running in user-space is clear win. It leads to a code
easier to maintain, and avoid taking risks of running too many code in
the unprotected kernel-space.
--
Gilles
next prev parent reply other threads:[~2009-09-02 11:37 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-02 9:25 [Xenomai-help] Deprecated kernel system calls in xenomai-head and new application development paradigm Rus V. Brushkoff
2009-09-02 9:28 ` Gilles Chanteperdrix
2009-09-02 9:32 ` Rus V. Brushkoff
2009-09-02 9:34 ` Rus V. Brushkoff
2009-09-02 10:48 ` Gilles Chanteperdrix
2009-09-02 11:11 ` Rus V. Brushkoff
2009-09-02 11:16 ` Gilles Chanteperdrix
2009-09-02 11:25 ` Rus V. Brushkoff
2009-09-02 11:37 ` Gilles Chanteperdrix [this message]
2009-09-02 12:00 ` Rus V. Brushkoff
2009-09-02 12:41 ` Philippe Gerum
2009-09-02 14:34 ` Rus V. Brushkoff
2009-09-02 14:40 ` Philippe Gerum
2009-09-02 14:41 ` Gilles Chanteperdrix
2009-09-02 11:54 ` Philippe Gerum
2009-09-02 12:04 ` Rus V. Brushkoff
2009-09-02 12:25 ` Philippe Gerum
2009-09-02 12:35 ` Jan Kiszka
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=4A9E5917.8060200@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=rus@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.