All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: ROSSIER Daniel <Daniel.Rossier@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-core] Latencies for the Freescale i.MX21/CSB535FS
Date: Wed, 26 Apr 2006 10:40:33 +0200	[thread overview]
Message-ID: <444F3201.2080302@domain.hid> (raw)
In-Reply-To: <FDBBB5CC70676540B3EF7CFE83FD94E0210DD0@domain.hid>

ROSSIER Daniel wrote:
> Hi all,
> 
>  
> 
> As promised, you can find the latency results (latency –t0/-t1/-t2) as 
> well as the
> 
> stats from the switch utility for the performance of our Xenomai port 
> onto the i.MX21 board.
> 
>  
> 
> These are fesh results J and we didn't have time to analyze them yet.
> 
>  
> 
> Thanks for any feedback…

The tests have not been run long enough under load to get a reliable 
measure of the real worst-case figures, but still, the data sets seem 
consistent.

- the test run of latency -t2 (in-kernel timer handler) shows equivalent 
worst-case figures than the -t1 form (in-kernel thread), which means 
that most of the latency hit is taken at the Adeos level, i.e. in-kernel 
scheduling adds little in the picture. Room for improvement is primarily 
hiding somewhere in the Adeos layer, I think.

- comparing the min latency observed in the -t1 and -t2 forms, it looks 
like the inherent cost of traversing the rescheduling path would be 
close to ~10 us.

- comparing the min latency observed in the -t0 and -t1 forms, there is 
another 10+ us consumed in switching mm contexts, and paying the 
involved cache penalties. The way to measure the level of perturbation 
Linux adds by switching its own tasks is to write a simple kernel module 
embodying a Xenomai thread that keeps the CPU busy while the performance 
  test is running at a higher priority.

I'd say that the most efficient way to reduce those latencies would 
require to first identify the source of the 40+ us spot observed with 
the -t2 form on an idle system. For that, I'm convinced that porting the 
I-pipe tracer to ARM would be the best option, since this tool would be 
of great help there.

This port basically requires 1) to code the mcount() routine supporting 
gcc's -pg option, 2) to solve early boot issues so that mcount() does 
not attempt to trace anything while the memory environment has not been 
fully set up. The rest is pretty generic.

-- 

Philippe.


  reply	other threads:[~2006-04-26  8:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-26  8:08 [Xenomai-core] Latencies for the Freescale i.MX21/CSB535FS ROSSIER Daniel
2006-04-26  8:40 ` Philippe Gerum [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-04-27 11:50 ROSSIER Daniel
2006-04-27 12:02 ` Jan Kiszka
2006-04-27 12:13   ` Philippe Gerum

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=444F3201.2080302@domain.hid \
    --to=rpm@xenomai.org \
    --cc=Daniel.Rossier@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.