From: Jan Kiszka <jan.kiszka@domain.hid>
To: "M. Koehrer" <mathias_koehrer@domain.hid>
Cc: xenomai@xenomai.org, rtnet-users@domain.hid
Subject: Re: [Xenomai-help] [RTnet-users] /proc/xenomai/affinity and T_CPU(n) in rt_task_create
Date: Wed, 19 Dec 2007 16:59:34 +0100 [thread overview]
Message-ID: <47693FE6.30707@domain.hid> (raw)
In-Reply-To: <5864711.1198077318353.JavaMail.ngmail@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 2252 bytes --]
M. Koehrer wrote:
> Hi everybody,
>
> I am currently evaluating the latest Xenomai release 2.4.0 on a Dual Core Pentium 4 using
> the 2.6.23 kernel and also the latest rtnet 0.9.10-rc1.
> I have one question concerning the relation of the /proc/xenomai/affinity entry and the parameter
> T_CPU(n) I pass with rt_task_create (native API).
> If I set /proc/xenomai/affinity to 1 (which means to run all real time tasks on CPU 0). I am not allowed
> to pass T_CPU(1) with rt_task_create. rt_task_start returns with a -EINVAL.
>
> Background for my question is:
> rtnet uses a internal system task For this task I cannot pass the CPU I want to run this CPU on.
> My idea is now to set /proc/xenomai/affinity to 1 which means (in my mind) that all tasks that do
> not have specified explicitly a task number (T_CPU(n)) will run on the CPU(s) specified by /proc/xenomai/affinity.
> All those tasks that specify T_CPU explicitly will run on the specified CPU, no matter what value
> /proc/xenomai/affinity is.
> However, this seems not to work.
Yes, the development version used to have this behaviour. But it didn't
work out for skins like POSIX where there is no clear
I-don't-care-about-affinity state on thread creation. So we switched to
unconditional enforcement before the final release (don't have the
thread at hand, but you can find it in the xenomai-core archive). Sorry
for the inconvenience, but it was unavoidable.
>
> I want to run rtnet on CPU 0 and my own code on CPU 1. For this I write 1 to /proc/xenomai/affinity and
> pass T_CPU(1) with all my calls to rt_task_create. However, these tasks return with -EINVAL.
> I debugged into Xenomai and found out that is caused in xnpod_start_thread() at the condition
> if (xnarch_cpus_empty(thread->affinity)) ...
>
> When I write 3 to /proc/xenomai/affinity my tasks start fine, however I have now no control of the
> CPU placement of the rtnet system task.
>
>
> Any hints on that are highly welcome.
Suggested procedure:
1. set global affinity for RTnet and start up the stack
2. set global affinity for your application (or open it) and start that
one up
Or do you have any tricky dependencies that work against this approach?
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
prev parent reply other threads:[~2007-12-19 15:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-19 15:15 [Xenomai-help] /proc/xenomai/affinity and T_CPU(n) in rt_task_create M. Koehrer
2007-12-19 15:59 ` Jan Kiszka [this message]
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=47693FE6.30707@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=mathias_koehrer@domain.hid \
--cc=rtnet-users@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.