public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Russell King <rmk+lkml@arm.linux.org.uk>,
	Hugh Dickins <hugh@veritas.com>, Andrew Morton <akpm@osdl.org>,
	Dominik Brodowski <linux@dominikbrodowski.net>,
	Daniel Ritz <daniel.ritz@gmx.ch>,
	linux-kernel@vger.kernel.org
Subject: Re: revert yenta free_irq on suspend
Date: Mon, 01 Aug 2005 11:06:49 +0200	[thread overview]
Message-ID: <1122887210.18835.119.camel@gaston> (raw)
In-Reply-To: <Pine.LNX.4.58.0507301404240.29650@g5.osdl.org>

On Sat, 2005-07-30 at 14:10 -0700, Linus Torvalds wrote:
> 
> On Sat, 30 Jul 2005, Russell King wrote:
> > 
> > I don't think so - I believe one of the problem cases is where you
> > have a screaming interrupt caused by an improperly setup device.
> 
> Not a problem.
> 
> The thing is, this is trivially solved by
>  - disable irq controller last on shutdown
>  - re-enable irq controller last on resume
> 
> Think about it. Even if you have screaming irq's (and thus we'll shut
> things down somewhere during the resume), when we then get to re-enable
> the irq controller thing, we'll have them all back again at that point.
> Problem solved.

That is nasty. That means every single driver must be careful not to
ever "wait" for the device interrupt to happen at resume. I'm not
talking about adding a timeout or such (that should be done anyway to
deal with hot unplug) but having something like IDE -> queues wakeup
request and blocks til it's dealt with. That sort of thing. It's
annoying, it means no driver can rely on IRQs actually working in their
resume callback. Not nice.

Also, once a driver has woken up, it doesn't really have an idea that
the rest of the system is not yet fully up (or that it actually is), and
thus doesn't really know if interrupts are still globally off or not if
we implement your scheme. That may cause nasty effects too I suppose...

> You can have variations on this, of course - you can enable the irq
> controller early _and_ late in the resume process. Ie do a minimal "get
> the basics working" early - you might want to make sure that timers etc
> work early on, for example, and then a "fix up the details" thing late.
> 
> An interrupt controller is clearly a special case, so it's worth spending 
> some effort on handling it.
> 
> In contrast, what is _not_ worth doing is screweing over every single
> driver we have.

I'm not fan of the free/request irq on suspend & resume for various
reasons, and I don't think it actually fixes the problem discussed
anyway because of shared interrupts, but heh, the problem is real on x86
it seems (BIOS crap !). Not sure what the best fix is.

Ben.



  parent reply	other threads:[~2005-08-01  9:10 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-30 19:10 revert yenta free_irq on suspend Hugh Dickins
2005-07-30 20:03 ` Russell King
2005-07-30 20:36   ` Linus Torvalds
2005-07-30 20:54     ` Russell King
2005-07-30 21:10       ` Linus Torvalds
2005-07-30 21:30         ` Russell King
2005-07-30 22:28         ` Rafael J. Wysocki
2005-07-31  4:49           ` Linus Torvalds
2005-08-01  9:06         ` Benjamin Herrenschmidt [this message]
2005-07-30 21:20       ` Rafael J. Wysocki
2005-07-30 20:34 ` Linus Torvalds
2005-07-31 13:29   ` Pavel Machek
2005-07-31 15:53     ` Linus Torvalds
2005-07-31 17:09       ` Linus Torvalds
2005-07-30 20:49 ` Rafael J. Wysocki
2005-07-30 21:08   ` Daniel Ritz
2005-07-30 21:32   ` Hugh Dickins
2005-07-30 22:00     ` Rafael J. Wysocki
2005-07-30 22:24       ` Hugh Dickins
2005-07-30 23:09         ` Rafael J. Wysocki
2005-07-31 20:15           ` Rafael J. Wysocki
2005-08-01 20:34             ` Hugh Dickins
2005-08-01 21:54               ` Rafael J. Wysocki
  -- strict thread matches above, loose matches on Subject: below --
2005-07-31  5:03 Brown, Len
2005-07-31  5:31 ` Linus Torvalds
2005-07-31  9:49 ` Rafael J. Wysocki
2005-07-31 22:27 ` Dave Jones
2005-08-01  0:00   ` Andreas Steinmetz
2005-08-01  0:06     ` Dave Jones
2005-08-01  0:09       ` Andreas Steinmetz
2005-08-03  9:23   ` Pavel Machek
2005-08-01  8:51 ` Matthew Garrett
2005-07-31 20:34 ambx1
2005-07-31 21:20 ` Pavel Machek
2005-08-01  8:56   ` Benjamin Herrenschmidt
2005-07-31 22:55 ` Linus Torvalds
2005-07-31 23:05   ` Pavel Machek
2005-07-31 23:24     ` Linus Torvalds
2005-07-31 23:27       ` Pavel Machek
2005-07-31 23:44         ` Linus Torvalds
2005-07-31 23:59           ` Dave Airlie
2005-08-01  0:19             ` Linus Torvalds
2005-08-01  0:44               ` Dave Airlie
2005-08-01  1:07                 ` Linus Torvalds
2005-08-01  7:15                   ` Pavel Machek
2005-08-01  7:01               ` Sanjoy Mahajan
2005-08-01  7:25           ` Pavel Machek
2005-07-31 23:10   ` Dave Airlie
2005-08-01  1:59 ` Shaohua Li
2005-08-01  2:06   ` Andrew Morton
2005-08-01  2:22     ` Shaohua Li
2005-08-01  7:19     ` Pavel Machek
2005-08-01 21:38     ` Rafael J. Wysocki
2005-08-01  3:03 ambx1
2005-08-01  4:53 ` Linus Torvalds
2005-08-01  8:49 ` Benjamin Herrenschmidt
2005-08-02 10:56   ` Pavel Machek
2005-08-03 11:42     ` Benjamin Herrenschmidt

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=1122887210.18835.119.camel@gaston \
    --to=benh@kernel.crashing.org \
    --cc=akpm@osdl.org \
    --cc=daniel.ritz@gmx.ch \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=rmk+lkml@arm.linux.org.uk \
    --cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox