Stephane Fillod wrote:
> -----Message d'origine-----
> De : Fillod Stephane [mailto:[EMAIL PROTECTED]
> Envoye : vendredi 4 novembre 2005 13:30
> A : [EMAIL PROTECTED]; [email protected]
> Objet : RE: [Xenomai-help] number-crunching execution jitter
> 
> 
> Dominique.RAGOT wrote:
> >I am using Xenomai 2.0 for a number-crunching application on
> bi-processor x86 SMP and using the Posix skin.
> >
> >There are 2 tasks on each processor that are awaken every 20ms and
> execute for 16ms.
> >When there are no perturbations on the machine, the jitter on tasks
> wakeup and execution time is acceptable (approx. 5%).
> >
> >However, when adding a simple load such as find / -print 
> redirected to
> /dev/null, the execution jitter is much worse (more than 100% in some
> cases), whereas wakeup jitter remains good. My conclusion is that the
> tasks are preempted when running. Is it right ?
> 
> IMHO, there are plenty of other possible reasons.
> What *measurement* result makes you conclude it is preemption which
> induces
> execution jitter?

The system is not connected to anything else than keyboard, mouse and display 
screen and is booted in single-user mode. The only visible userland tasks are 
init, udevd and the current shell. When the tests are running I do not touch 
anything and display output is redirected to /dev/null. What are the other 
possible reasons remaining in this case ?

In the meantime I modified the benchmark with a call to the routine 
pthread_set_mode_np(0, PTHREAD_SHIELD) immediately after thread is created, and 
observes a huge reduction in execution jitter, but at the expense of wakeup 
jitter. So I concluded the interrupt shield was definitely not doing much 
without this call. Am I wrong ?

> 
> Rem: I assume your RT tasks are free of non-RT Linux syscalls.
> 

RT tasks are doing mathematical operations and calls to Xenomai POSIX skin 
routines. How can I make sure no non-RT Linux syscall is ever called ?

> >I suspect the interrupt shield to be inactive (although I see it in
> /proc/adeos). How could it be activated with Posix skin ? How could it
> be monitored ?
> 
> Subtract the number of interrupts handlers processed when 
> leaving your 
> RT task by the number when entering. This measurement will 
> tell you if 
> the interrupt shield works as expected or not.

How do you obtain these numbers ? Is there any system call usable or shall I 
use the information in /proc.

> 
> A tool like LTT (not available now with Xenomai?) would have been able
> to tell what's happening during the 20ms period.
> 
> My random guess is you're maybe in the need of a "cache-shield", 
> a "tlb-shield" and/or a "DMA-shield". All those shields (tm) :-).

Sorry, I do not understand your point here. If this stuff is trademark, (tm) as 
you write it, I doubt it has ever been incorporated in any Xenomai or Fusion 
release. Where can I get it anyway ? Google was not my friend on this !

> 
> Measurements can be done using OProfile, with appropriate event
> selection.
> 

OK, I will try it.

> 
> >PS: too bad the cruncher will not survive 2.0. Would you consider
> including POSIX tests in the new 2.1 release ? I did not see 
> any in the
> 2.0.
> 
> I'm sure the Xenomai committer team will enjoy your patches ;-)
> 

This is why I asked. If number crunching is no longer in the scope it is worth 
knowing. Are you a member of this team ?

> 
> Best Regards,
> -- 
> Stephane
>

Best Regards,
--
Dominique

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to