public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* Re: [ECOS] ARM Spurious Interrupts & Scheduler locking
       [not found] <E1BC4Sl-0003YE-00@londo.lunn.ch>
@ 2004-04-11 18:31 ` Andrew Lunn
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Lunn @ 2004-04-11 18:31 UTC (permalink / raw)
  To: cboling; +Cc: ecos-discuss

On Fri, Apr 09, 2004 at 05:12:10PM -0500, ecos-dev@bcsw.net wrote:
> I have found what appears to be a bug in the handling of spurious interrupts
> on the ARM architecture with kernel support enabled.
> 
> The problem is in vectors.s.  The scheduler gets locked before running
> hal_IRQ_handler() (which deciphers the active interrupt) and gets unlocked
> in interrupt_end(). The problem is that the scheduler always gets locked,
> but interrupt_end() doesn't get called in the case of a spurious interrupt
> which leaves the scheduler locked forever.  Perhaps that is the intended
> behavior, but there is no documentation to warn the user of this 'feature'.

I don't know if this is intended, sorry. 
 
> This is particularly frustrating if you assert
> CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS because you don't believe
> spurious interrupts are problem, then find that your system hangs whenever
> one occurs.

But is it hanging because of the code or because your spurious
interrupt? Maybe you are getting a storm of spurious interrupts?
Spurious interrupts should be investigated. It means either your
hardware is broken or there is a problem with your device drivers.

     Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [ECOS] ARM Spurious Interrupts & Scheduler locking
@ 2004-04-10 19:52 ecos-dev
  0 siblings, 0 replies; 2+ messages in thread
From: ecos-dev @ 2004-04-10 19:52 UTC (permalink / raw)
  To: ecos-discuss

I have found what appears to be a bug in the handling of spurious interrupts
on the ARM architecture with kernel support enabled.

The problem is in vectors.s.  The scheduler gets locked before running
hal_IRQ_handler() (which deciphers the active interrupt) and gets unlocked
in interrupt_end(). The problem is that the scheduler always gets locked,
but interrupt_end() doesn't get called in the case of a spurious interrupt
which leaves the scheduler locked forever.  Perhaps that is the intended
behavior, but there is no documentation to warn the user of this 'feature'.

This is particularly frustrating if you assert
CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS because you don't believe
spurious interrupts are problem, then find that your system hangs whenever
one occurs.

Looking at the discussion list, it appears the problem was introduced back
in 2001 at the recommendation of Thomas Faehnle.  It also appears that this
is the problem that Mahesh Patil was struggling with several months ago.

Thanks.

	- Chip Boling
	  bcsw.net


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-04-11 11:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <E1BC4Sl-0003YE-00@londo.lunn.ch>
2004-04-11 18:31 ` [ECOS] ARM Spurious Interrupts & Scheduler locking Andrew Lunn
2004-04-10 19:52 ecos-dev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).