All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johann Obermayr <johann.obermayr@sigmatek.at>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] usage of rtdm_task_sleep_abs
Date: Mon, 13 Jul 2015 22:23:02 +0200	[thread overview]
Message-ID: <55A41E26.9020903@sigmatek.at> (raw)
In-Reply-To: <20150713195856.GA1552@hermes.click-hack.org>

Am 13.07.2015 um 21:58 schrieb Gilles Chanteperdrix:
> On Mon, Jul 13, 2015 at 07:26:11PM +0200, Johann Obermayr wrote:
>> Am 13.07.2015 um 19:21 schrieb Gilles Chanteperdrix:
>>> Johann Obermayr wrote:
>>>> Am 13.07.2015 um 17:24 schrieb Gilles Chanteperdrix:
>>>>> Johann Obermayr wrote:
>>>>>> without your application, there are no large latencies.
>>>>>> with your application see frozen.txt (with latency -f)
>>>>> I am confused. You mean "our application", not "your application",
>>>>> right?
>>>>> lrtdrv_monitoring_irq is not part of the code delivered by the Xenomai
>>>>> project.
>>>>>
>>>>>> We see the problem only if one task (background) is accessing the SRAM
>>>>>> on your PCI-Card. if we stop this task, all is ok.
>>>>> Again: the Xenomai project does not make PCI-card. So, you probably mean
>>>>> "our PCI-Card"?
>>>> yes, our PCI-Card. (sorry for my bad english)
>>>>>> So we have a higher prior task (pci-locker), that interrupt the
>>>>>> background task, so that the pci bus get free.
>>>>> I am not sure I understand your explanations. But the trace is pretty
>>>>> clear:
>>>>>
>>>>> At time -658 the timer is programmed to tick at -561.
>>>>>
>>>>>> :|  # event   tick@-561   -658	  0.112  xntimer_next_local_shot+0xca
>>>>>> :|  + func                -651	  0.145  lrtdrv_monitoring_irq+0x4
>>>>>> [sigmatek_lrt] (irq_hook_handler+0x32 [sigmatek_lrt])
>>>>>> :|  + end     0x000000ef  -651! 641.640  apic_timer_interrupt+0x52
>>>>>> (<102d0254>)
>>>>> But at that point the tick is delayed for 600us. And according to the
>>>>> trace, the last traced function called before that delay is the function
>>>>>
>>>>> ltdrv_monitoring_irq.
>>>>>
>>>>> So, I do not know what this irq is doing, but I would suggest having a
>>>>> close look at it.
>>>>>
>>>>>
>>>> hello,
>>>>
>>>> i have disable our lrtdrv_monitoring_irq.
>>>> Only have this callback
>>>> static void irq_hook_handler(unsigned int irq, unsigned int state)
>>>> {
>>>>       if (fpga_interrupt == irq && state == 0x01)
>>>>       {
>>>>           time_fpga_irq = rt_timer_tsc();
>>>>       }
>>>> }
>>>> same latency
>>> Maybe, but your trace does not contain enough points to see it. The trace
>>> should at least contain the "tick@" event which gets missed, so that we
>>> can see how much the interrupt is delayed, and what was happening at the
>>> time.
>>>
>>>
>> Hi,
>>
>> Sorry, here with more points.
> Ok, what is irq_hook_handler ?
>
Ok.  on out PCI Card there is a FPGA. This FPGA generate am Interrupt to 
the PC. But internal in the FPGA there
are different IRQ sources. One of them is our Tick.
So we measure the time from  __ipipe_handle_irq to the  our 
rtdm_irq_request handler.
In our handler we can check, if it our Tick and than we can calc the 
correct time to start our pci_locker task 50us before next Tick-irq.

It's a callback function from some irq function ipipe_raise_irq, 
__ipipe_do_IRQ, __ipipe_handle_irq
for our own tracing and it save the fpga irq time.
Only __ipipe_handle_irq have state 0x01 (begin irq) & state 0x02 at the 
end of the function.

Regards
   Johann


  reply	other threads:[~2015-07-13 20:23 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
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 [this message]
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=55A41E26.9020903@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.