All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Johann Obermayr <johann.obermayr@sigmatek.at>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] usage of rtdm_task_sleep_abs
Date: Tue, 14 Jul 2015 00:39:32 +0200	[thread overview]
Message-ID: <20150713223932.GA1971@hermes.click-hack.org> (raw)
In-Reply-To: <55A4346B.9030309@sigmatek.at>

On Mon, Jul 13, 2015 at 11:58:03PM +0200, Johann Obermayr wrote:
> Am 13.07.2015 um 22:54 schrieb Gilles Chanteperdrix:
> >On Mon, Jul 13, 2015 at 10:45:17PM +0200, Johann Obermayr wrote:
> >>Am 13.07.2015 um 22:31 schrieb Gilles Chanteperdrix:
> >>>On Mon, Jul 13, 2015 at 10:23:02PM +0200, Johann Obermayr wrote:
> >>>>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.
> >>>I see two weird things in your traces:
> >>>- irq_hook_handler which is taking a lot of time
> >>>- or some APIC related functions taking a lot of time.
> >>>
> >>>Are you sure your system is not one of those which disable the APIC
> >>>during idle period. Is your system UP or SMP?
> >>>
> >>It's a SMP (Dual core Celeron)
> >Real dual core, or hyperthreaded ?
> >
> >>Kernel cmdline
> >>nohlt idle=poll xeno_hal.smi=1 isolcpus=0 irqaffinity=1 console=ttyS0,115200
> >>BOOT_IMAGE=/bzImage FirstUsbDrive=E console=/dev/null noconsole
> >>root=/dev/sda2 rw
> >Do you have the same problem without these options ?
> >nohlt idle=poll xeno_hal.smi=1 isolcpus=0 irqaffinity=1
> >
> Hello Gilles,
> 
> the trouble are only if our SRAM test on our pci-card is running (on core1).
> we have see, that the the core0 must wait, if he will access the fpga.
> can it be, that the apic has the same trouble ?

You mean there is an issue with bus contention? Are there many
things occupying the bus when the problem happens?


> 
> Regards
> 
> _______________________________________________
> Xenomai mailing list
> Xenomai@xenomai.org
> http://xenomai.org/mailman/listinfo/xenomai

-- 
					    Gilles.
https://click-hack.org


  reply	other threads:[~2015-07-13 22:39 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
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 [this message]
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=20150713223932.GA1971@hermes.click-hack.org \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=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.