All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: Rodrigo Rosenfeld Rosas <lbocseg@domain.hid>
Cc: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] Interrupt priorities
Date: Thu, 23 Mar 2006 00:04:45 +0100	[thread overview]
Message-ID: <4421D80D.9020504@domain.hid> (raw)
In-Reply-To: <200603201647.51941.lbocseg@domain.hid>

Rodrigo Rosenfeld Rosas wrote:
> Hi Philippe.
> 
> I was wondering if there are any plans to provide an option to Xenomai to 
> allow the use of interrupt priorities. I mean, by having the timer source as 
> the most prioritary interrupt so that the scheduler could preempt the 
> interrupt.
> 
> Let me explain why such option would be good. When I was testing my 
> framegrabber driver, I had to reboot my PC about 10 times until I could 
> identificate what was causing total freeze of the system. The problem was on 
> the interrupt handler. One of the problems was that I was not clearing the 
> interrupt events correctly so that the handler was in loop. The other problem 
> was a crash inside the interrupt due to something like:
> 
> uint64_t timestamp=rtdm_clock_read();
> b.timestamp = *((struct timeval *) timestamp);
> 
> Where it should be
> b.timestamp = *((struct timeval *) &timestamp);
> 
> I forgot the '&' char.
> 
> If it was possible to preempt the interrupt, by a task of greater priority, I 
> could write a watchdog that would disable the interrupt in case the system 
> stops responding.
> 
> Do you think it would worth providing such option to Xenomai, at least as a 
> debug feature?
> 

Actually, this is an Adeos issue. Adeos should be taught to preserve hw 
interrupt priorities, or at least be given some sort of fairness, when 
syncing the interrupt log. Currently, high-numbered IRQs are processed 
before low-numbered ones, so if the former pile up indefinitely, this 
could prevent the delivery of the latter.

A way to pull the brake when some interrupt channel goes wild is to 
activate Xenomai's NMI watchdog, which is never pipelined on any Adeos 
implementation. This requires an APIC to be available on your x86 CPU 
though. Additionally, interrupt serialization could be prevented just by 
re-enabling hw interrupts in Xenomai's ISR, since the nucleus supports 
reentrancy, but I don't think that's the issue you experienced. Timer 
IRQs did show up, but likely remained stuck in the log due to the 
misbehaving IRQ channel with higher software priority.

> Best Regards,
> 
> Rodrigo.
> 
> P.S: BTW, I think my driver is usable now, so that you (or someone else) could 
> cite it in some article or documentation. When I finish my master thesis (my 
> deadline is the end of June ), I think I'll have time to comment it better 
> and to remove the Data Translation specific code so that it can me made 
> available as a template for real-time video interfaces. Or maybe you could 
> convince Data Translation to allow me to show all the code! ;)
> 

Having a reusable template would already be nice, and likely appreciated 
by the RTDM people too, since that's precious on hand information.

> 		
> _______________________________________________________
> Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
> http://br.acesso.yahoo.com
> 
> 
> _______________________________________________
> Xenomai-core mailing list
> Xenomai-core@domain.hid
> https://mail.gna.org/listinfo/xenomai-core
> 


-- 

Philippe.


  reply	other threads:[~2006-03-22 23:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-20 19:47 [Xenomai-core] Interrupt priorities Rodrigo Rosenfeld Rosas
2006-03-22 23:04 ` Philippe Gerum [this message]
2006-03-23  2:35   ` Rodrigo Rosenfeld Rosas
2006-03-23 14:20     ` 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=4421D80D.9020504@domain.hid \
    --to=rpm@xenomai.org \
    --cc=lbocseg@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.