All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johann Obermayr <johann.obermayr@sigmatek.at>
To: Xenomai@xenomai.org
Subject: Re: [Xenomai] usage of rtdm_task_sleep_abs
Date: Fri, 10 Jul 2015 12:43:29 +0200	[thread overview]
Message-ID: <559FA1D1.6060602@sigmatek.at> (raw)
In-Reply-To: <20150710094655.GS20176@hermes.click-hack.org>

Am 10.07.2015 um 11:46 schrieb Gilles Chanteperdrix:
> On Fri, Jul 10, 2015 at 11:34:59AM +0200, Johann Obermayr wrote:
>> Am 09.07.2015 um 17:51 schrieb Gilles Chanteperdrix:
>>> On Thu, Jul 09, 2015 at 05:43:03PM +0200, Johann Obermayr wrote:
>>>> Am 09.07.2015 um 16:19 schrieb Gilles Chanteperdrix:
>>>>> On Thu, Jul 09, 2015 at 02:15:55PM +0200, Johann Obermayr wrote:
>>>>>> Hello,
>>>>>>
>>>>>> we have follow situation
>>>>>>
>>>>>> u64 lrtdrv_time_of_irq_ns ;
>>>>>> void worker_task()
>>>>>> {
>>>>>> while(1)
>>>>>>      {
>>>>>>      rtdm_task_sleep_abs(lrtdrv_time_of_irq_ns + 950000ull,
>>>>>> RTDM_TIMERMODE_ABSOLUTE);
>>>>>>      do_something();
>>>>>>      }
>>>>>> }
>>>>>>
>>>>>> _kernel_rtdm_irq_handler()
>>>>>> {
>>>>>>      lrtdrv_time_of_irq_ns = rtdm_clock_read_monotonic();
>>>>>> }
>>>>>>
>>>>>> the  _kernel_irq_callback() is called every 1ms.
>>>>>> we will , that the worker_task begin 50us before next irq
>>>>>>
>>>>>> But sometime, the worker task start ~50us after irq. Why ?
>>>>> Best way to know, enable the I-pipe tracer, setup sufficient back
>>>>> trace points, and when the wrong wake up happens, trigger an I-pipe
>>>>> trace.
>>>>>
>>>> i will enable i-pipe tracer.
>>>> found out, that
>>>>
>>>> rtdm_task_sleep_abs(xxx, RTDM_TIMERMODE_ABSOLUTE);
>>>> u64 calc = rtdm_clock_read_monotonic();
>>>>
>>>> sometime the diff between xxx & calc is biger than 61000ns.
>>> This is called "kernel task scheduling latency". It can be measured by
>>> the latency -t 1 test.
>> Ok, i will test it with this test.
>> Here a simple list of measure from  rtdm_task_sleep_abs(xxx) calc =
>> rtdm_clock_read_monotonic
> Yeah, latency -t 1 does that too. Only much better.
>
Result a) only latency -t 1
RTT|  00:00:01  (in-kernel periodic task, 100 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat 
best|--lat worst
RTD|     -2.618|     -2.481|     -2.384|       0|     0| -2.618|     -2.384
RTD|     -2.506|     -2.477|     -2.301|       0|     0| -2.618|     -2.301
RTD|     -2.590|     -2.479|     -2.192|       0|     0| -2.618|     -2.192
RTD|     -2.517|     -2.489|     -2.324|       0|     0| -2.618|     -2.192
RTD|     -2.612|     -2.490|     -2.335|       0|     0| -2.618|     -2.192
RTD|     -2.723|     -2.490|     -2.300|       0|     0| -2.723|     -2.192
RTD|     -2.521|     -2.491|     -2.332|       0|     0| -2.723|     -2.192
RTD|     -2.624|     -2.492|     -2.346|       0|     0| -2.723|     -2.192
RTD|     -2.520|     -2.490|     -2.341|       0|     0| -2.723|     -2.192
RTD|     -2.584|     -2.490|     -2.353|       0|     0| -2.723|     -2.192
RTD|     -2.521|     -2.487|     -2.333|       0|     0| -2.723|     -2.192
RTD|     -2.521|     -2.490|     -2.329|       0|     0| -2.723|     -2.192
RTD|     -2.519|     -2.488|     -1.946|       0|     0| -2.723|     -1.946
RTD|     -2.521|     -2.490|     -2.353|       0|     0| -2.723|     -1.946
RTD|     -2.605|     -2.490|     -2.343|       0|     0| -2.723|     -1.946
RTD|     -2.521|     -2.490|     -2.328|       0|     0| -2.723|     -1.946
RTD|     -2.568|     -2.489|     -2.337|       0|     0| -2.723|     -1.946
RTD|     -2.520|     -2.490|     -2.329|       0|     0| -2.723|     -1.946
RTD|     -2.553|     -2.491|     -2.337|       0|     0| -2.723|     -1.946
RTD|     -2.521|     -2.491|     -2.325|       0|     0| -2.723|     -1.946
RTD|     -2.521|     -2.490|     -2.341|       0|     0| -2.723|     -1.946

Result b) with our application, that copy with a releaxed task from/to a 
SRAM on a PCI Card.
RTT|  00:00:01  (in-kernel periodic task, 100 us period, priority 99)
RTH|---lat min|---lat avg|----lat max|-overrun|---msw|---lat best|--lat 
worst
RTD|     -2.680|     -1.537|    716.496|       38|     0| -2.680|    716.496
RTD|     -2.680|     -1.414|    691.232|       81|     0| -2.680|    716.496
RTD|     -3.051|     -0.877|    739.939|     120|     0| -3.051|    739.939
RTD|     -2.662|     -1.422|    738.747|     160|     0| -3.051|    739.939
RTD|     -2.713|     -1.637|    726.880|     191|     0| -3.051|    739.939
RTD|     -2.656|     -1.044|    675.880|     218|     0| -3.051|    739.939
RTD|     -2.655|     -1.269|    753.354|     251|     0| -3.051|    753.354
RTD|     -2.661|     -1.344|    633.684|     301|     0| -3.051|    753.354
RTD|     -2.663|     -1.626|    698.008|     333|     0| -3.051|    753.354
RTD|     -2.662|     -0.579|    751.352|     379|     0| -3.051|    753.354
RTD|     -2.669|     -1.455|    733.275|     410|     0| -3.051|    753.354
RTD|     -2.758|     -1.670|    629.569|     434|     0| -3.051|    753.354
RTD|     -2.760|     -1.686|    690.451|     445|     0| -3.051|    753.354
RTD|     -2.668|     -1.032|    753.099|     483|     0| -3.051|    753.354
RTD|     -2.661|     -1.476|    735.519|     518|     0| -3.051|    753.354
RTD|     -2.660|     -1.647|    725.828|     552|     0| -3.051|    753.354
RTD|     -2.661|     -1.236|    250.879|     556|     0| -3.051|    753.354




  reply	other threads:[~2015-07-10 10:43 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-09 12:15 [Xenomai] usage of rtdm_task_sleep_abs Johann Obermayr
2015-07-09 14:19 ` Gilles Chanteperdrix
2015-07-09 15:43   ` Johann Obermayr
2015-07-09 15:51     ` Gilles Chanteperdrix
2015-07-10  9:34       ` Johann Obermayr
2015-07-10  9:46         ` Gilles Chanteperdrix
2015-07-10 10:43           ` Johann Obermayr [this message]
2015-07-10 10:49             ` Gilles Chanteperdrix
2015-07-13 13:41               ` Johann Obermayr
2015-07-13 14:02                 ` Gilles Chanteperdrix
2015-07-13 14:56                   ` Johann Obermayr
2015-07-13 15:24                     ` Gilles Chanteperdrix
2015-07-13 16:58                       ` Johann Obermayr
2015-07-13 17:21                         ` Gilles Chanteperdrix
2015-07-13 17:26                           ` Johann Obermayr
2015-07-13 19:58                             ` Gilles Chanteperdrix
2015-07-13 20:23                               ` Johann Obermayr
2015-07-13 20:31                                 ` Gilles Chanteperdrix
2015-07-13 20:45                                   ` Johann Obermayr
2015-07-13 20:54                                     ` Gilles Chanteperdrix
2015-07-13 21:30                                       ` Johann Obermayr
2015-07-13 21:58                                       ` Johann Obermayr
2015-07-13 22:39                                         ` Gilles Chanteperdrix
2015-07-13 23:30                                           ` Johann Obermayr
2015-07-14  0:02                                             ` Gilles Chanteperdrix
2015-07-15 21:00                                               ` Johann Obermayr
2015-07-15 21:21                                                 ` [Xenomai] ipipe trace Johann Obermayr
2015-07-16  6:30                                                 ` [Xenomai] usage of rtdm_task_sleep_abs Gilles Chanteperdrix
2015-07-16 11:46                                                   ` Johann Obermayr
2015-07-17  5:25                                                     ` Gilles Chanteperdrix
2015-07-13 20:35                                 ` Gilles Chanteperdrix

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=559FA1D1.6060602@sigmatek.at \
    --to=johann.obermayr@sigmatek.at \
    --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.