All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] [Fwd: Performance decrease]
@ 2006-08-30 12:36 Philippe Gerum
  2006-08-30 12:48 ` Philippe Gerum
  0 siblings, 1 reply; 11+ messages in thread
From: Philippe Gerum @ 2006-08-30 12:36 UTC (permalink / raw)
  To: xenomai

-------- Forwarded Message --------
> From: Daniel Schnell <danielsch@domain.hid>
> To: xenomai-help <xenomai@xenomai.org>
> Subject: Performance decrease
> Date: Wed, 30 Aug 2006 11:58:25 -0000
> 
> Hi,
> 
>  
> 
> I have made some CPU throughput tests with/without "Nucleus options->pervasive real-time support in user-space"  enabled/disabled. And the performance dicrease in using that option is for my processor (MPC5200, 400 MHz) about 10%. On the other side I cannot compile RTDM support in without it; the error message when linking vmlinux at the end of the Kernel compile stage is:
> 
>  
> 
> drvlib.c:(.text+0x19f8): undefined reference to `__va_to_kva'
> 
>  
> 
> 
> 
> For what is the real-time support in user space option good for ?
> 
> If it is necessary for RTDM support, shouldn't it be automatically switched on when choosing the RTDM option ?
> 
>  
> 
> 
> 
> 
> 
> I am using ELDK-4.0 + latest 2.4.25-developer kernel from Denx + latest subversion xenomai + adeos patch 1.1-04
> 
>  
> 
> Thanks in advance,
> 
>  
> 
> 
> 
> Ciao,
> 
>  
> 
> Daniel.
> 
-- 
Philippe.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-08-30 12:36 [Xenomai-help] [Fwd: Performance decrease] Philippe Gerum
@ 2006-08-30 12:48 ` Philippe Gerum
  2006-08-30 13:11   ` Jan Kiszka
  2006-08-31 20:41   ` Gilles Chanteperdrix
  0 siblings, 2 replies; 11+ messages in thread
From: Philippe Gerum @ 2006-08-30 12:48 UTC (permalink / raw)
  To: xenomai; +Cc: Daniel Schnell

On Wed, 2006-08-30 at 14:36 +0200, Philippe Gerum wrote:
> -------- Forwarded Message --------
> > From: Daniel Schnell <danielsch@domain.hid>
> > To: xenomai-help <xenomai@xenomai.org>
> > Subject: Performance decrease
> > Date: Wed, 30 Aug 2006 11:58:25 -0000
> > 
> > Hi,
> > 
> >  
> > 
> > I have made some CPU throughput tests with/without "Nucleus options->pervasive real-time support in user-space" 
>  enabled/disabled. And the performance dicrease in using that option is for my processor (MPC5200, 400 MHz) about 10%.

There is an impact induced by activating the user-space support, since
all system calls are filtered through Xenomai; some work is currently
undergoing to reduce this overhead, so that only system calls issued by
Xenomai shadows would be intercepted. This said, out of curiosity, how
do you measure those 10% on your board?

>  On the other side I cannot compile RTDM support in without it; the error message when linking vmlinux
> at the end of the Kernel compile stage is:
> > 
> >  
> > 
> > drvlib.c:(.text+0x19f8): undefined reference to `__va_to_kva'
> > 

I guess that rtdm_mmap_buffer() should be made dependent on
CONFIG_XENO_OPT_PERVASIVE too.

> >  
> > 
> > 
> > 
> > For what is the real-time support in user space option good for ?
> >

This allows running Xenomai applications in user-space, instead of
implementing them as kernel modules.

>  
> > If it is necessary for RTDM support, shouldn't it be automatically switched on when choosing the RTDM option ?
> > 
> >  
> > 
> > 
> > 
> > 
> > 
> > I am using ELDK-4.0 + latest 2.4.25-developer kernel from Denx + latest subversion xenomai + adeos patch 1.1-04
> > 
> >  
> > 
> > Thanks in advance,
> > 
> >  
> > 
> > 
> > 
> > Ciao,
> > 
> >  
> > 
> > Daniel.
> > 
-- 
Philippe.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-08-30 12:48 ` Philippe Gerum
@ 2006-08-30 13:11   ` Jan Kiszka
  2006-08-30 14:49     ` Jan Kiszka
  2006-08-31 20:41   ` Gilles Chanteperdrix
  1 sibling, 1 reply; 11+ messages in thread
From: Jan Kiszka @ 2006-08-30 13:11 UTC (permalink / raw)
  To: rpm; +Cc: xenomai, Daniel Schnell

[-- Attachment #1: Type: text/plain, Size: 997 bytes --]

Philippe Gerum wrote:
>>  On the other side I cannot compile RTDM support in without it; the error message when linking vmlinux
>> at the end of the Kernel compile stage is:
>>>  
>>>
>>> drvlib.c:(.text+0x19f8): undefined reference to `__va_to_kva'
>>>
> 
> I guess that rtdm_mmap_buffer() should be made dependent on
> CONFIG_XENO_OPT_PERVASIVE too.

True. Will craft some patch.

> 
>>>  
>>>
>>>
>>>
>>> For what is the real-time support in user space option good for ?
>>>
> 
> This allows running Xenomai applications in user-space, instead of
> implementing them as kernel modules.
> 

Everyone planning to write kernel-space drivers and/or applications
should keep an eye on some non-technical aspect as well: the license.
That's no problem for in-house, unpublished work. But for things that
are to be given away / sold, one should recall that the kernel community
is more and more considering non-GPL modules in general as a license
infringement.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
       [not found] <DD39B5C3F4963040ADC9768BE7E430CB01082A7C@is-hdq-exchange.marel.net>
@ 2006-08-30 14:29 ` Jan Kiszka
  0 siblings, 0 replies; 11+ messages in thread
From: Jan Kiszka @ 2006-08-30 14:29 UTC (permalink / raw)
  To: Daniel Schnell; +Cc: xenomai

[-- Attachment #1: Type: text/plain, Size: 1398 bytes --]

Daniel Schnell wrote:
> Hi,
> 
> 
>>>> For what is the real-time support in user space option good for ?
>>>>
>> This allows running Xenomai applications in user-space, instead of
>> implementing them as kernel modules.
>>
> 
> Everyone planning to write kernel-space drivers and/or applications
> should keep an eye on some non-technical aspect as well: the license.
> That's no problem for in-house, unpublished work. But for things that
> are to be given away / sold, one should recall that the kernel community
> is more and more considering non-GPL modules in general as a license
> infringement.
> 
> 
> Hmm, if I am writing an application that uses Xenomai's magic, e.g. in
> using the POSIX API, that shouldn't violate any GPL code isn't it ? Of
> course a kernel module should be GPL, because it is linked to the GPL
> kernel.

Well, kernel developers have a standard answer: "Consult a lawyer." And
if you are really going for a non-GPL kernel-based product, this is
probably a good idea to assess potential risks. Note that the Xenomai
API in kernel space is GPL due to the GPL environment of the kernel.
Only the user-space libs are LGPL.

> 
> So are RTDM drivers principially running in user space then ?

RTDM drivers are currently running in kernel space only, but they are
providing services to both user and kernel space, symmetrically.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-08-30 13:11   ` Jan Kiszka
@ 2006-08-30 14:49     ` Jan Kiszka
  0 siblings, 0 replies; 11+ messages in thread
From: Jan Kiszka @ 2006-08-30 14:49 UTC (permalink / raw)
  To: rpm, Daniel Schnell; +Cc: xenomai

[-- Attachment #1: Type: text/plain, Size: 467 bytes --]

Jan Kiszka wrote:
> Philippe Gerum wrote:
>>>  On the other side I cannot compile RTDM support in without it; the error message when linking vmlinux
>>> at the end of the Kernel compile stage is:
>>>>  
>>>>
>>>> drvlib.c:(.text+0x19f8): undefined reference to `__va_to_kva'
>>>>
>> I guess that rtdm_mmap_buffer() should be made dependent on
>> CONFIG_XENO_OPT_PERVASIVE too.
> 
> True. Will craft some patch.
> 

Should be fixed in SVN now.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-08-30 12:48 ` Philippe Gerum
  2006-08-30 13:11   ` Jan Kiszka
@ 2006-08-31 20:41   ` Gilles Chanteperdrix
  2006-09-01  7:13     ` Philippe Gerum
  1 sibling, 1 reply; 11+ messages in thread
From: Gilles Chanteperdrix @ 2006-08-31 20:41 UTC (permalink / raw)
  To: xenomai

Philippe Gerum wrote:
 > On Wed, 2006-08-30 at 14:36 +0200, Philippe Gerum wrote:
 > > -------- Forwarded Message --------
 > > > From: Daniel Schnell <danielsch@domain.hid>
 > > > To: xenomai-help <xenomai@xenomai.org>
 > > > Subject: Performance decrease
 > > > Date: Wed, 30 Aug 2006 11:58:25 -0000
 > > > 
 > > > Hi,
 > > > 
 > > >  
 > > > 
 > > > I have made some CPU throughput tests with/without "Nucleus options->pervasive real-time support in user-space" 
 > >  enabled/disabled. And the performance dicrease in using that option is for my processor (MPC5200, 400 MHz) about 10%.
 > 
 > There is an impact induced by activating the user-space support, since
 > all system calls are filtered through Xenomai; some work is currently
 > undergoing to reduce this overhead, so that only system calls issued by
 > Xenomai shadows would be intercepted. This said, out of curiosity, how
 > do you measure those 10% on your board?

Just being curious: how will you achieve this ? You will make the
function used to dispatch system calls a per-thread pointer ?

-- 


					    Gilles Chanteperdrix.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-08-31 20:41   ` Gilles Chanteperdrix
@ 2006-09-01  7:13     ` Philippe Gerum
  2006-09-01 12:54       ` Gilles Chanteperdrix
  0 siblings, 1 reply; 11+ messages in thread
From: Philippe Gerum @ 2006-09-01  7:13 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: xenomai

On Thu, 2006-08-31 at 22:41 +0200, Gilles Chanteperdrix wrote:
> Philippe Gerum wrote:
>  > On Wed, 2006-08-30 at 14:36 +0200, Philippe Gerum wrote:
>  > > -------- Forwarded Message --------
>  > > > From: Daniel Schnell <danielsch@domain.hid>
>  > > > To: xenomai-help <xenomai@xenomai.org>
>  > > > Subject: Performance decrease
>  > > > Date: Wed, 30 Aug 2006 11:58:25 -0000
>  > > > 
>  > > > Hi,
>  > > > 
>  > > >  
>  > > > 
>  > > > I have made some CPU throughput tests with/without "Nucleus options->pervasive real-time support in user-space" 
>  > >  enabled/disabled. And the performance dicrease in using that option is for my processor (MPC5200, 400 MHz) about 10%.
>  > 
>  > There is an impact induced by activating the user-space support, since
>  > all system calls are filtered through Xenomai; some work is currently
>  > undergoing to reduce this overhead, so that only system calls issued by
>  > Xenomai shadows would be intercepted. This said, out of curiosity, how
>  > do you measure those 10% on your board?
> 
> Just being curious: how will you achieve this ? You will make the
> function used to dispatch system calls a per-thread pointer ?
> 

Syscalls are just another form of exceptions, so the change will need to
affect all event notifications. A per-thread pointer is an opion
provided there is also a mean to install the callback address, so we
would also need to intercept the Linux task creation event. Another
option would be to define an event filtering routine at domain level,
which gets called before the event is pipelined. The latter is a simple
and straightforward approach which does not change much of the existing
infrastructure, but to remain fast and efficient, the filter should be
defined for the domain which notifies events, and not for the domains
which get notified, and this would be quite restrictive Adeos-wise, even
if this would solve the root issue, Xenomai-wise. To sum up and answer
to your initial question: well, I don't know yet.

-- 
Philippe.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-09-01  7:13     ` Philippe Gerum
@ 2006-09-01 12:54       ` Gilles Chanteperdrix
  2006-09-01 14:35         ` Philippe Gerum
  0 siblings, 1 reply; 11+ messages in thread
From: Gilles Chanteperdrix @ 2006-09-01 12:54 UTC (permalink / raw)
  To: rpm; +Cc: xenomai

Philippe Gerum wrote:
 > On Thu, 2006-08-31 at 22:41 +0200, Gilles Chanteperdrix wrote:
 > > Philippe Gerum wrote:
 > >  > On Wed, 2006-08-30 at 14:36 +0200, Philippe Gerum wrote:
 > >  > > -------- Forwarded Message --------
 > >  > > > From: Daniel Schnell <danielsch@domain.hid>
 > >  > > > To: xenomai-help <xenomai@xenomai.org>
 > >  > > > Subject: Performance decrease
 > >  > > > Date: Wed, 30 Aug 2006 11:58:25 -0000
 > >  > > > 
 > >  > > > Hi,
 > >  > > > 
 > >  > > >  
 > >  > > > 
 > >  > > > I have made some CPU throughput tests with/without "Nucleus options->pervasive real-time support in user-space" 
 > >  > >  enabled/disabled. And the performance dicrease in using that option is for my processor (MPC5200, 400 MHz) about 10%.
 > >  > 
 > >  > There is an impact induced by activating the user-space support, since
 > >  > all system calls are filtered through Xenomai; some work is currently
 > >  > undergoing to reduce this overhead, so that only system calls issued by
 > >  > Xenomai shadows would be intercepted. This said, out of curiosity, how
 > >  > do you measure those 10% on your board?
 > > 
 > > Just being curious: how will you achieve this ? You will make the
 > > function used to dispatch system calls a per-thread pointer ?
 > > 
 > 
 > Syscalls are just another form of exceptions, so the change will need to
 > affect all event notifications. A per-thread pointer is an opion
 > provided there is also a mean to install the callback address, so we
 > would also need to intercept the Linux task creation event. 

If we continue on this idea. PTD initialization already intercept the
Linux task creation event to set the PTDs to 0. Maybe we could dedicate
a PTD to mean that a thread is "monitored", so that when an Adeos event
occurs, the event only triggers Xenomai callbacks if the thread is
monitored (not sure that it would work for the "schedule" event
though).

But there is an exception: the "bind" syscall event must be intercepted
for threads that are not yet marked as monitored.

-- 


					    Gilles Chanteperdrix.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-09-01 12:54       ` Gilles Chanteperdrix
@ 2006-09-01 14:35         ` Philippe Gerum
  2006-09-01 14:58           ` Gilles Chanteperdrix
  0 siblings, 1 reply; 11+ messages in thread
From: Philippe Gerum @ 2006-09-01 14:35 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: xenomai

On Fri, 2006-09-01 at 14:54 +0200, Gilles Chanteperdrix wrote:
> Philippe Gerum wrote:
>  > On Thu, 2006-08-31 at 22:41 +0200, Gilles Chanteperdrix wrote:
>  > > Philippe Gerum wrote:
>  > >  > On Wed, 2006-08-30 at 14:36 +0200, Philippe Gerum wrote:
>  > >  > > -------- Forwarded Message --------
>  > >  > > > From: Daniel Schnell <danielsch@domain.hid>
>  > >  > > > To: xenomai-help <xenomai@xenomai.org>
>  > >  > > > Subject: Performance decrease
>  > >  > > > Date: Wed, 30 Aug 2006 11:58:25 -0000
>  > >  > > > 
>  > >  > > > Hi,
>  > >  > > > 
>  > >  > > >  
>  > >  > > > 
>  > >  > > > I have made some CPU throughput tests with/without "Nucleus options->pervasive real-time support in user-space" 
>  > >  > >  enabled/disabled. And the performance dicrease in using that option is for my processor (MPC5200, 400 MHz) about 10%.
>  > >  > 
>  > >  > There is an impact induced by activating the user-space support, since
>  > >  > all system calls are filtered through Xenomai; some work is currently
>  > >  > undergoing to reduce this overhead, so that only system calls issued by
>  > >  > Xenomai shadows would be intercepted. This said, out of curiosity, how
>  > >  > do you measure those 10% on your board?
>  > > 
>  > > Just being curious: how will you achieve this ? You will make the
>  > > function used to dispatch system calls a per-thread pointer ?
>  > > 
>  > 
>  > Syscalls are just another form of exceptions, so the change will need to
>  > affect all event notifications. A per-thread pointer is an opion
>  > provided there is also a mean to install the callback address, so we
>  > would also need to intercept the Linux task creation event. 
> 
> If we continue on this idea. PTD initialization already intercept the
> Linux task creation event to set the PTDs to 0. Maybe we could dedicate
> a PTD to mean that a thread is "monitored", so that when an Adeos event
> occurs, the event only triggers Xenomai callbacks if the thread is
> monitored

The advantage I see with wiring the callback into the task struct is
that it should be easier to handle the binding issue. While we are at
it, we could just define an additional callback pointer, no need to
recycle ptds.

>  (not sure that it would work for the "schedule" event
> though).

We want to know all scheduling events anyway, including those involving
non-shadows, so that we can make the root thread inherit the right
priority (and also engage the interrupt shield as needed).

> 
> But there is an exception: the "bind" syscall event must be intercepted
> for threads that are not yet marked as monitored.

That's the major issue. We need to keep events flowing to a filtering
callback in order to detect binding ops, but without going through the
entire pipeline abstraction. And pipelining as it is now must be kept
for bound Linux tasks, i.e. shadows. The idea is to save the time spent
in the Adeos event dispatcher for tasks that don't need to tell the
world about what they are actually doing.

-- 
Philippe.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-09-01 14:35         ` Philippe Gerum
@ 2006-09-01 14:58           ` Gilles Chanteperdrix
  2006-09-01 18:02             ` [Xenomai-core] " Philippe Gerum
  0 siblings, 1 reply; 11+ messages in thread
From: Gilles Chanteperdrix @ 2006-09-01 14:58 UTC (permalink / raw)
  To: rpm; +Cc: xenomai

Philippe Gerum wrote:
 > > 
 > > But there is an exception: the "bind" syscall event must be intercepted
 > > for threads that are not yet marked as monitored.
 > 
 > That's the major issue. We need to keep events flowing to a filtering
 > callback in order to detect binding ops, but without going through the
 > entire pipeline abstraction. And pipelining as it is now must be kept
 > for bound Linux tasks, i.e. shadows. The idea is to save the time spent
 > in the Adeos event dispatcher for tasks that don't need to tell the
 > world about what they are actually doing.

The binding operation could be made a standard Linux operation, such as
an ioctl for instance.

-- 


					    Gilles Chanteperdrix.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Xenomai-core] Re: [Xenomai-help] [Fwd: Performance decrease]
  2006-09-01 14:58           ` Gilles Chanteperdrix
@ 2006-09-01 18:02             ` Philippe Gerum
  0 siblings, 0 replies; 11+ messages in thread
From: Philippe Gerum @ 2006-09-01 18:02 UTC (permalink / raw)
  To: Gilles Chanteperdrix; +Cc: xenomai, xenomai

On Fri, 2006-09-01 at 16:58 +0200, Gilles Chanteperdrix wrote:
> Philippe Gerum wrote:
>  > > 
>  > > But there is an exception: the "bind" syscall event must be intercepted
>  > > for threads that are not yet marked as monitored.
>  > 
>  > That's the major issue. We need to keep events flowing to a filtering
>  > callback in order to detect binding ops, but without going through the
>  > entire pipeline abstraction. And pipelining as it is now must be kept
>  > for bound Linux tasks, i.e. shadows. The idea is to save the time spent
>  > in the Adeos event dispatcher for tasks that don't need to tell the
>  > world about what they are actually doing.
> 
> The binding operation could be made a standard Linux operation, such as
> an ioctl for instance.
> 

Yes. We would have to define another character device node, but since we
are going to need this for Xenomai3, we would only be anticipating the
requirement anyway.

PS: moving this discussion to xenomai-core.

-- 
Philippe.




^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-09-01 18:02 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-30 12:36 [Xenomai-help] [Fwd: Performance decrease] Philippe Gerum
2006-08-30 12:48 ` Philippe Gerum
2006-08-30 13:11   ` Jan Kiszka
2006-08-30 14:49     ` Jan Kiszka
2006-08-31 20:41   ` Gilles Chanteperdrix
2006-09-01  7:13     ` Philippe Gerum
2006-09-01 12:54       ` Gilles Chanteperdrix
2006-09-01 14:35         ` Philippe Gerum
2006-09-01 14:58           ` Gilles Chanteperdrix
2006-09-01 18:02             ` [Xenomai-core] " Philippe Gerum
     [not found] <DD39B5C3F4963040ADC9768BE7E430CB01082A7C@is-hdq-exchange.marel.net>
2006-08-30 14:29 ` Jan Kiszka

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.