On 02/20/2014 03:51 PM, Leopold Palomo-Avellaneda wrote:
A Dijous, 20 de febrer de 2014, Gilles Chanteperdrix va escriure:
On 02/20/2014 01:23 PM, Leopold Palomo-Avellaneda wrote:
A Dijous, 20 de febrer de 2014, Gilles Chanteperdrix va escriure:
On 02/20/2014 11:09 AM, Leopold Palomo-Avellaneda wrote:
A Dijous, 20 de febrer de 2014, Gilles Chanteperdrix va escriure:
On 02/20/2014 12:41 AM, Leopold Palomo-Avellaneda wrote:
Well,

please, correct me if I'm wrong in some of this sentences. I
will try to rewrite my email in a more clear terminology.

Following [1] I understand that a realtime task is scheduled by
the
Xenomai
scheduler and a non-realtime by the Linux scheduler. I can use
the terms "thread" and "task"  in the same meaning.

Again: the terms "real-time" and "non real-time" are ambiguous.
Please stick to the terms "task with a shadow", "task without a
shadow" and "primary mode" or "secondary mode".

:-(

Ok,

I agree with you that the nomenclature is important to define
correctly but please don't be so strict.

   I'm in the open source world since long time ago,
and I understand perfectly that the main developers of a projects
are tired of dummy questions, or not clear mails, etc. But, I think
that the relatime world is a complex thing, and not so easy when
you are learning, or having troubles.

And although that there's a lot documentation, it's difficult to
find the document that fits all your doubts.

So, again, please, correct me if I'm wrong in some of this
sentences. I will try to rewrite my email in a more clear
terminology.

Following [1] and [2] I understand that a realtime thread is
executed in primary mode and scheduled by the Xenomai scheduler.

Listen, there are three cases:
1- thread with a shadow running in primary mode
2- thread with a shadow running in secondary mode
3- thread without a shadow

and you want to use two words "real-time thread" and "non real-time
thread". 1 is obviously a real-time thread, 3 is obviously a
non-real-time thread. What do you make of 2? If you consider "being
real-time" a "static" property, then 2 is a real-time thread. If you
consider it a run-time property, a state of a task, then 2 is a
non-real-time thread.

For me real-time is a dynamic property. So, when a thread with a shadow is
executed in primary mode I call it real-time. When the same thread is
executed
in secondary mode, it loses the real-time property.


I find it more natural to think of real-time threads as the ones with a
shadow (and a priority higher than 0). Sure, they can be in secondary
mode temporarily, but they can still access the "primary mode only"
services, it will simply cause them to switch to primary mode.


If this RT thread call a non-RT primitive, then RT-Nucleus move
this RT-Thread to the Linux queue and this thread is controlled by
the Linux scheduler. A Non-RT thread is executed in secondary mode
and controlled by the Linux scheduler.

If 2 is with 3 (which would make your first assertion right), here you
are wrong. Only a thread with a shadow can run in secondary mode,
there is no primary or secondary mode for threads without a shadow.

This is something that I don't understand yet. Then, what's the difference
(practical) between a thread with a shadow running in secondary mode and a
thread without a shadow.

A thread without a shadow.... does not have a shadow, some, if not most
Xenomai services are reserved to threads with a shadow, so, the
difference is that it will get -EPERM when calling these services, which
would have worked if it had had a shadow.


I'm sorry if I insist, but I still have a doubt:

I have always understood that all Linux tasks were executed in secondary mode,

No, it does not make sense to say that Linux tasks run in secondary mode, because they do not have a primary mode in the first place. But yes, both are scheduled by the Linux scheduler, if that what you mean.

and reading you I understand that this is not true. So, "where" is Linux
running its tasks?

Linux is running its tasks, concurrently with tasks with a shadow running in secondary mode on the CPU, when the CPU is not occupied by Xenomai duties.


Secondary mode?
No mode, it's another domain, you cannot map this domain as mode?

Please do not continue adding new notions, Adeos domains, are something else, related to primary mode and secondary mode, but not the same thing.

--
                                            Gilles.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to