From: david-b@pacbell.net (David Brownell)
To: linux-arm-kernel@lists.infradead.org
Subject: Get rid of IRQF_DISABLED - (was [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED)
Date: Mon, 30 Nov 2009 12:53:28 -0800 [thread overview]
Message-ID: <200911301253.29325.david-b@pacbell.net> (raw)
In-Reply-To: <20091130150100.GB7028@n2100.arm.linux.org.uk>
On Monday 30 November 2009, Russell King - ARM Linux wrote:
> On Mon, Nov 30, 2009 at 02:47:02PM +0000, Alan Cox wrote:
> > SHARED|DISABLED ought to WARN_ON() and if that doesn't motivate people
> > then return -EINVAL.
>
> That is an impossibility. There is hardware out there (AT91) where
> the timer interrupt is shared with other peripherals, and you end
> up with a mixture of irqs-disabled and irqs-enabled handlers sharing
> the same interrupt.
For the record: AT91 isn't restricted to the system timers hooked
up on irq 0 ... there's also drivers/clocksource/tcb_clksrc.c (not
at the same hardware priority).
But to concur, this is indeed messy. Both the system timer and
the serial console generally share the same IRQ; both are very
timing-sensitive. I've seen console character dropouts after
tweaking timer IRQ handling. And I've never convinced myself
that Linux handles the hardware IRQ priority on those chips as
well as it could.
> My point is that if we outlaw irqs-disabled shared interrupts, it puts
> Atmel AT91 support into immediate difficulties.
ISTR that those TCB modules don't share IRQs with other peripherals.
Also, that Linux doesn't use them for much else. I've yet to see a
three-phase motor driver using the TCB's PWM capabilities, for example.
- Dave
WARNING: multiple messages have this Message-ID (diff)
From: David Brownell <david-b@pacbell.net>
To: "Russell King - ARM Linux" <linux@arm.linux.org.uk>
Cc: "Alan Cox" <alan@lxorguk.ukuu.org.uk>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Rusty Russell" <rusty@rustcorp.com.au>,
"David Brownell" <dbrownell@users.sourceforge.net>,
"Eric Miao" <eric.y.miao@gmail.com>,
"Andrea Gallo" <andrea.gallo@stericsson.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"John Stultz" <johnstul@us.ibm.com>,
"Nicolas Pitre" <nico@marvell.com>,
"Jamie Lokier" <jamie@shareable.org>,
LKML <linux-kernel@vger.kernel.org>,
"Remy Bohmer" <linux@bohmer.net>,
"Hugh Dickins" <hugh.dickins@tiscali.co.uk>,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Ingo Molnar" <mingo@elte.hu>,
linux-arm-kernel@lists.infradead.org
Subject: Re: Get rid of IRQF_DISABLED - (was [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED)
Date: Mon, 30 Nov 2009 12:53:28 -0800 [thread overview]
Message-ID: <200911301253.29325.david-b@pacbell.net> (raw)
In-Reply-To: <20091130150100.GB7028@n2100.arm.linux.org.uk>
On Monday 30 November 2009, Russell King - ARM Linux wrote:
> On Mon, Nov 30, 2009 at 02:47:02PM +0000, Alan Cox wrote:
> > SHARED|DISABLED ought to WARN_ON() and if that doesn't motivate people
> > then return -EINVAL.
>
> That is an impossibility. There is hardware out there (AT91) where
> the timer interrupt is shared with other peripherals, and you end
> up with a mixture of irqs-disabled and irqs-enabled handlers sharing
> the same interrupt.
For the record: AT91 isn't restricted to the system timers hooked
up on irq 0 ... there's also drivers/clocksource/tcb_clksrc.c (not
at the same hardware priority).
But to concur, this is indeed messy. Both the system timer and
the serial console generally share the same IRQ; both are very
timing-sensitive. I've seen console character dropouts after
tweaking timer IRQ handling. And I've never convinced myself
that Linux handles the hardware IRQ priority on those chips as
well as it could.
> My point is that if we outlaw irqs-disabled shared interrupts, it puts
> Atmel AT91 support into immediate difficulties.
ISTR that those TCB modules don't share IRQs with other peripherals.
Also, that Linux doesn't use them for much else. I've yet to see a
three-phase motor driver using the TCB's PWM capabilities, for example.
- Dave
next prev parent reply other threads:[~2009-11-30 20:53 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-21 7:39 [PATCH] Don't disable irqs in set_next_event and set_mode callbacks Uwe Kleine-König
2009-09-21 9:04 ` Russell King - ARM Linux
2009-09-21 9:16 ` Uwe Kleine-König
2009-09-21 9:30 ` Russell King - ARM Linux
2009-09-21 10:48 ` Alessandro Rubini
2009-09-21 12:32 ` Kristoffer Ericson
2009-09-23 19:01 ` Eric Miao
2009-09-23 21:04 ` Remy Bohmer
2009-11-26 10:26 ` [RESENT PATCH] " Uwe Kleine-König
2009-11-26 10:50 ` Russell King - ARM Linux
2009-11-26 11:31 ` Russell King - ARM Linux
2009-11-27 10:44 ` Uwe Kleine-König
2009-11-27 19:08 ` Thomas Gleixner
2009-11-27 19:58 ` Russell King - ARM Linux
2009-11-27 20:38 ` Uwe Kleine-König
2009-11-27 20:44 ` Russell King - ARM Linux
2009-11-27 21:31 ` Thomas Gleixner
2009-11-27 21:59 ` Russell King - ARM Linux
2009-11-27 22:20 ` Thomas Gleixner
2009-11-27 21:10 ` [PATCH] warn about shared irqs requesting IRQF_DISABLED registered with setup_irq Uwe Kleine-König
2009-11-27 21:10 ` Uwe Kleine-König
2009-11-27 22:18 ` Thomas Gleixner
2009-11-27 22:18 ` Thomas Gleixner
2009-11-28 20:03 ` Uwe Kleine-König
2009-11-28 20:03 ` Uwe Kleine-König
2009-11-28 21:50 ` Thomas Gleixner
2009-11-28 21:50 ` Thomas Gleixner
2009-11-28 22:13 ` David Brownell
2009-11-28 22:13 ` David Brownell
2009-11-29 2:31 ` Jamie Lokier
2009-11-29 2:31 ` Jamie Lokier
2009-11-29 10:26 ` Uwe Kleine-König
2009-11-29 10:26 ` Uwe Kleine-König
2009-11-29 15:18 ` Jamie Lokier
2009-11-29 15:18 ` Jamie Lokier
2009-11-29 15:27 ` Russell King - ARM Linux
2009-11-29 15:27 ` Russell King - ARM Linux
2009-11-30 20:39 ` Jamie Lokier
2009-11-30 20:39 ` Jamie Lokier
2009-11-30 9:28 ` Uwe Kleine-König
2009-11-30 9:28 ` Uwe Kleine-König
2009-11-30 9:54 ` Thomas Gleixner
2009-11-30 9:54 ` Thomas Gleixner
2009-11-28 22:09 ` David Brownell
2009-11-28 22:09 ` David Brownell
2009-11-30 10:47 ` [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED at the right place Uwe Kleine-König
2009-11-30 10:47 ` Uwe Kleine-König
2009-11-30 13:54 ` Get rid of IRQF_DISABLED - (was [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED) Thomas Gleixner
2009-11-30 13:54 ` Thomas Gleixner
2009-11-30 14:03 ` Peter Zijlstra
2009-11-30 14:03 ` Peter Zijlstra
2009-11-30 14:24 ` Thomas Gleixner
2009-11-30 14:24 ` Thomas Gleixner
2009-11-30 14:47 ` Alan Cox
2009-11-30 14:47 ` Alan Cox
2009-11-30 15:01 ` Russell King - ARM Linux
2009-11-30 15:01 ` Russell King - ARM Linux
2009-11-30 15:32 ` Alan Cox
2009-11-30 15:32 ` Alan Cox
2009-11-30 15:43 ` Russell King - ARM Linux
2009-11-30 15:43 ` Russell King - ARM Linux
2009-11-30 20:15 ` Andrew Victor
2009-11-30 20:15 ` Andrew Victor
2009-11-30 20:53 ` David Brownell [this message]
2009-11-30 20:53 ` David Brownell
2009-11-30 20:38 ` David Brownell
2009-11-30 20:38 ` David Brownell
2009-12-01 1:42 ` Andy Walls
2009-12-01 1:42 ` Andy Walls
2009-11-30 19:59 ` Benjamin Herrenschmidt
2009-11-30 19:59 ` Benjamin Herrenschmidt
2009-11-30 21:31 ` Thomas Gleixner
2009-11-30 21:31 ` Thomas Gleixner
2009-11-30 21:42 ` Benjamin Herrenschmidt
2009-11-30 21:42 ` Benjamin Herrenschmidt
2009-11-30 21:54 ` Thomas Gleixner
2009-11-30 21:54 ` Thomas Gleixner
2009-11-30 14:37 ` Russell King - ARM Linux
2009-11-30 14:37 ` Russell King - ARM Linux
2009-11-30 14:39 ` Russell King - ARM Linux
2009-11-30 14:39 ` Russell King - ARM Linux
2009-11-30 17:48 ` Thomas Gleixner
2009-11-30 17:48 ` Thomas Gleixner
2009-11-30 14:51 ` Alan Cox
2009-11-30 14:51 ` Alan Cox
2009-11-30 21:59 ` Thomas Gleixner
2009-11-30 21:59 ` Thomas Gleixner
2009-11-30 23:30 ` Alan Cox
2009-11-30 23:30 ` Alan Cox
2009-11-30 15:38 ` Nicolas Pitre
2009-11-30 15:38 ` Nicolas Pitre
2009-11-30 17:46 ` Thomas Gleixner
2009-11-30 17:46 ` Thomas Gleixner
2009-11-30 19:51 ` Uwe Kleine-König
2009-11-30 19:51 ` Uwe Kleine-König
2009-11-30 21:23 ` Thomas Gleixner
2009-11-30 21:23 ` Thomas Gleixner
2009-11-30 20:21 ` [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED at the right place David Brownell
2009-11-30 20:21 ` David Brownell
2009-11-30 20:27 ` Uwe Kleine-König
2009-11-30 20:27 ` Uwe Kleine-König
2010-01-12 15:42 ` [RESEND PATCH] " Uwe Kleine-König
2010-01-12 15:42 ` Uwe Kleine-König
2009-11-26 10:51 ` [RESENT PATCH] Don't disable irqs in set_next_event and set_mode callbacks Eric Miao
2009-12-17 13:33 ` [PATCH 1/2] arm/at91: " Uwe Kleine-König
2009-12-17 13:33 ` [PATCH 2/2] arm/{pxa, sa1100, nomadik}: Don't disable irqs in set_next_event and set_mode Uwe Kleine-König
2010-01-22 16:08 ` [PATCH 1/2] arm/at91: Don't disable irqs in set_next_event and set_mode callbacks Uwe Kleine-König
2010-01-22 16:36 ` Russell King - ARM Linux
2010-01-22 16:52 ` Uwe Kleine-König
2010-02-12 10:35 ` Uwe Kleine-König
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=200911301253.29325.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=linux-arm-kernel@lists.infradead.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.