Re: [Xenomai-core] general questions

2012-02-02 Thread Jan-Erik Lange




> Date: Thu, 29 Dec 2011 15:36:07 +0100
> From: r...@xenomai.org
> To: jan0...@hotmail.de
> CC: xenomai-core@gna.org
> Subject: Re: [Xenomai-core] general questions
> 
> On 12/29/2011 01:04 PM, Jan-Erik Lange wrote:
> > Hello,
> > I'm new in the topic about the Xenomai co-kernel approach and I have
> > some questions to the primary mode and secondary mode.
> >
> > I have trouble with the imagination of the fact in general, that one
> > task (process oder thread) can be processed by two kernels (Xenomai
> > nucleus and standard kernel), and treated by the one in real time and by
> > the other in non real-time.
> >
> > 1. So far I understood this approach, the primary and secondary mode is
> > an abstract description of the fact, that threads or processes can be
> > scheduled by the Xenomai nucleus or by the standard Linux kernel
> > scheduler. Is this correct?
> 
> Yes. A Xenomai thread in user-space is attached a "shadow" control area 
> in addition to the regular linux context data, which enables both linux 
> and the nucleus to schedule it in a mutually exclusive manner.
> 
> >
> > 2. Now supose, that I have chosen the VxWork-skin and I started a task
> > in the primary mode. Is it correct that when this task is calling a non
> > VxWork-API-funtion, there will a change of the context from primary to
> > the secondary mode? Or what is the exact condition of the switching of
> > the context?
> >
> 
> - invoking a regular linux syscall
> - receiving a linux signal (e.g. kill(2) and GDB)
> - causing a CPU trap (e.g. invalid memory access), hitting a breakpoint 
> (e.g. GDB)
> 
> all these situations cause the switch from primary to secondary mode. We 
> say that such thread "relaxes" in Xenomai parlance.
> 
> A common caveat is to call a glibc routine, which eventually issues a 
> linux syscall under the hood. Think of malloc() detecting a process 
> memory shortage, which then calls mmap or sbrk to extend the process 
> data. Or, running into a mutex contention once in a while, forcing the 
> calling thread to issue a syscall for sleeping on the mutex. 
> Fortunately, we have a tool to detect these situations.
 
 
 
 
What is the name of the tool to detect these migrations? I thought there is 
only the possibility to react on this SIGXCPU signal with a signal handler.
 
 

> 
> > It would be very nice, if you could tell me a little bit about these
> > questions?
> >
> > Best regards
> > Jan
> >
> >
> >
> > ___
> > Xenomai-core mailing list
> > Xenomai-core@gna.org
> > https://mail.gna.org/listinfo/xenomai-core
> 
> 
> -- 
> Philippe.   
___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


Re: [Xenomai-core] general questions

2011-12-29 Thread Philippe Gerum

On 12/29/2011 01:04 PM, Jan-Erik Lange wrote:

Hello,
I'm new in the topic about the Xenomai co-kernel approach and I have
some questions to the primary mode and secondary mode.

I have trouble with the imagination of the fact in general, that one
task (process oder thread) can be processed by two kernels (Xenomai
nucleus and standard kernel), and treated by the one in real time and by
the other in non real-time.

1. So far I understood this approach, the primary and secondary mode is
an abstract description of the fact, that threads or processes can be
scheduled by the Xenomai nucleus or by the standard Linux kernel
scheduler. Is this correct?


Yes. A Xenomai thread in user-space is attached a "shadow" control area 
in addition to the regular linux context data, which enables both linux 
and the nucleus to schedule it in a mutually exclusive manner.




2. Now supose, that I have chosen the VxWork-skin and I started a task
in the primary mode. Is it correct that when this task is calling a non
VxWork-API-funtion, there will a change of the context from primary to
the secondary mode? Or what is the exact condition of the switching of
the context?



- invoking a regular linux syscall
- receiving a linux signal (e.g. kill(2) and GDB)
- causing a CPU trap (e.g. invalid memory access), hitting a breakpoint 
(e.g. GDB)


all these situations cause the switch from primary to secondary mode. We 
say that such thread "relaxes" in Xenomai parlance.


A common caveat is to call a glibc routine, which eventually issues a 
linux syscall under the hood. Think of malloc() detecting a process 
memory shortage, which then calls mmap or sbrk to extend the process 
data. Or, running into a mutex contention once in a while, forcing the 
calling thread to issue a syscall for sleeping on the mutex. 
Fortunately, we have a tool to detect these situations.



It would be very nice, if you could tell me a little bit about these
questions?

Best regards
Jan



___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core



--
Philippe.

___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core


[Xenomai-core] general questions

2011-12-29 Thread Jan-Erik Lange

Hello,
I'm new in the topic about the Xenomai co-kernel approach and I have some 
questions to the primary mode and secondary mode. 
 
I have trouble with the imagination of the fact in general, that one task 
(process oder thread) can be processed by two kernels (Xenomai nucleus and 
standard kernel), and treated by the one in real time and by the other in non 
real-time.
 
1. So far I understood this approach, the primary and secondary mode is an 
abstract description of the fact, that threads or processes can be scheduled by 
the Xenomai nucleus or by the standard Linux kernel scheduler. Is this correct?
 
2. Now supose, that I have chosen the VxWork-skin and I started a task in the 
primary mode. Is it correct that when this task is calling a non 
VxWork-API-funtion, there will a change of the context from primary to the 
secondary mode? Or what is the exact condition of the switching of the context?
 
It would be very nice, if you could tell me a little bit about these questions?
 
Best regards 
Jan   ___
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core