mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>, Daniel Walker <dwalker@mvista.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Sven Dietrich <sdietrich@mvista.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>
Subject: Re: Preempt Real-time for ARM
Date: Wed, 09 Feb 2005 15:07:36 +0100	[thread overview]
Message-ID: <1107958056.17747.70.camel@tglx.tec.linutronix.de> (raw)
In-Reply-To: <20050209125044.A6312@flint.arm.linux.org.uk>

Russell,

On Wed, 2005-02-09 at 12:50 +0000, Russell King wrote:
> > > We have done the conversion to the generic irq handling and it works
> > > fine on a couple of machines. 
> > 
> > great - this would be a much preferred approach indeed.
> 
> Well, I remain unconvinced about the generic irq handling.
> 
> This caused major changes throughout all the machine support files,
> and I'm _NOT_, repeat _NOT_ going to consider going back to some
> half baked approach which doesn't really fit the needs of the ARM
> architecture, just because "oh, it's generic."  If it doesn't work
> reliably, I'm not interested.

Agreed. Doing it just for the sake of a generic solution is not the
point.

> This is especially so when it impacts so many machines in ways
> specific to each machine, and there's no way to get them tested
> in one go.

Ack.

> If this is to be done, doing it in the middle of a stable kernel series
> is NOT the time or place to do it.  I have recently had people complaining
> about the "stability" of 2.6, particularly in relation to changes made by
> other people affecting drivers.
> 
> Consider these questions in relation to the generic IRQ code:
> 
> 1. Does it know the difference between handling level, edge-based and
>    "simple" IRQs?  ("simple" IRQs are those which are cascaded, but
>    don't have their own individual interrupt mask controls.)

The changes we made to the generic layer in order to make it work on ARM
still call the level/edge/simple handlers.

> 2. Does the generic autoprobe code know which IRQs can be autoprobed
>    and which can't?  (cascade interrupts are just one example of
>    interrupts which must not be autoprobed.  There may be other
>    reasons you wish to avoid probing other interrupts on a particular
>    machine, which the machine support code knows about.)

Makes sense to add this to the generic code anyway.

> 3. Does the generic IRQ code know which IRQs can be claimed and
>    which can't?  (IRQs 0 to NR_IRQS aren't always claimable, even
>    when they appear to be available - iow, desc->handler != &no_irq_type.)

There's a check whether a particular irq has been exclusively allocated
or is available for driver use. Not sure, if it does exactly the same
what you are talking about. Needs to be checked.

> 4. Does it allow per "hw type" retriggering of interrupts, even if the
>    hardware itself is not capable of such an action?  (and running
>    these interrupts at the next hardware interrupt?)

I implemented this basically, but it's not fully tested/functional yet. 

> 5. Does it allow control of interrupt wakeup sources?

Are you talking about PM wakeup ? If yes, it is not there, but isn't
this functionality useful for other platforms than ARM too ?

> 6. Does it allow architectures to define their own irq_desc_t so that
>    all the data for a particular IRQ is localised and contained within
>    one data structure?

Having a generic irq_desc_t with an architecture specific member "struct
arch_irq_desc_t bla;" should do the job.

> In essence, I'm opposed to completely rewriting the ARM interrupt
> handling at this stage.

As expected :)
I accept your decision, but I hope that you are not completely opposed
to discuss a conversion at all, especially as other architectures will
benefit from the necessary changes to the generic code too. 

Thanks for the pointers so far.

tglx



  reply	other threads:[~2005-02-09 14:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-05 18:36 Daniel Walker
2005-02-09 11:28 ` Thomas Gleixner
2005-02-09 11:31   ` Ingo Molnar
2005-02-09 11:53     ` Thomas Gleixner
2005-02-09 12:50     ` Russell King
2005-02-09 14:07       ` Thomas Gleixner [this message]
2005-02-09 17:41       ` Daniel Walker
2005-02-09 19:44         ` Russell King
2005-02-10  8:21           ` Eugeny S. Mints

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=1107958056.17747.70.camel@tglx.tec.linutronix.de \
    --to=tglx@linutronix.de \
    --cc=dwalker@mvista.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mingo@elte.hu \
    --cc=rmk+lkml@arm.linux.org.uk \
    --cc=sdietrich@mvista.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®