All of lore.kernel.org
 help / color / mirror / Atom feed
From: benh@kernel.crashing.org (Benjamin Herrenschmidt)
To: linux-arm-kernel@lists.infradead.org
Subject: Get rid of IRQF_DISABLED - (was [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED)
Date: Tue, 01 Dec 2009 08:42:11 +1100	[thread overview]
Message-ID: <1259617331.2076.146.camel@pasglop> (raw)
In-Reply-To: <alpine.LFD.2.00.0911302225050.24119@localhost.localdomain>

On Mon, 2009-11-30 at 22:31 +0100, Thomas Gleixner wrote:

> Are the perf events on power generally coming through the standard irq
> handler code path and/or sensitive to local_irq_disable() ?

They are in HW yes. On ppc64, we do soft-disabling, which mean that we
can still get the perf events within a local_irq_disable() region
provided we don't get another interrupt within that region that forces
us to hard disable so it would make the problem less bad I suppose.

> > I would suggest we timestamp the handlers in the core btw and warn
> if
> > they take too long so we get a chance to track down the bad guys.
> 
> The hassle is to find a time which we think is appropriate as a
> threshold which is of course depending on the cpu power of a
> system. Also I wonder whether we'd need to make such a warning thing
> aware of irq nesting.

But if we always disable interrupts while running the handlers, we don't
nest right ?

Cheers,
Ben.

WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Alan Cox" <alan@lxorguk.ukuu.org.uk>,
	"David Brownell" <dbrownell@users.sourceforge.net>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Ingo Molnar" <mingo@elte.hu>, "Nicolas Pitre" <nico@marvell.com>,
	"Eric Miao" <eric.y.miao@gmail.com>,
	"John Stultz" <johnstul@us.ibm.com>,
	"Rusty Russell" <rusty@rustcorp.com.au>,
	"Remy Bohmer" <linux@bohmer.net>,
	"Hugh Dickins" <hugh.dickins@tiscali.co.uk>,
	"Andrea Gallo" <andrea.gallo@stericsson.com>,
	"Jamie Lokier" <jamie@shareable.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: Get rid of IRQF_DISABLED - (was [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED)
Date: Tue, 01 Dec 2009 08:42:11 +1100	[thread overview]
Message-ID: <1259617331.2076.146.camel@pasglop> (raw)
In-Reply-To: <alpine.LFD.2.00.0911302225050.24119@localhost.localdomain>

On Mon, 2009-11-30 at 22:31 +0100, Thomas Gleixner wrote:

> Are the perf events on power generally coming through the standard irq
> handler code path and/or sensitive to local_irq_disable() ?

They are in HW yes. On ppc64, we do soft-disabling, which mean that we
can still get the perf events within a local_irq_disable() region
provided we don't get another interrupt within that region that forces
us to hard disable so it would make the problem less bad I suppose.

> > I would suggest we timestamp the handlers in the core btw and warn
> if
> > they take too long so we get a chance to track down the bad guys.
> 
> The hassle is to find a time which we think is appropriate as a
> threshold which is of course depending on the cpu power of a
> system. Also I wonder whether we'd need to make such a warning thing
> aware of irq nesting.

But if we always disable interrupts while running the handlers, we don't
nest right ?

Cheers,
Ben.


  reply	other threads:[~2009-11-30 21:42 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
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 [this message]
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=1259617331.2076.146.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --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.