[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090225132325.GB30206@elte.hu>
Date: Wed, 25 Feb 2009 14:23:25 +0100
From: Ingo Molnar <mingo@...e.hu>
To: "Rafael J. Wysocki" <rjw@...k.pl>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
LKML <linux-kernel@...r.kernel.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Jeremy Fitzhardinge <jeremy@...p.org>,
pm list <linux-pm@...ts.linux-foundation.org>,
Len Brown <lenb@...nel.org>,
Jesse Barnes <jbarnes@...tuousgeek.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [RFC][PATCH 2/2] PM: Rework handling of interrupts during
suspend-resume
* Rafael J. Wysocki <rjw@...k.pl> wrote:
> On Wednesday 25 February 2009, Ingo Molnar wrote:
> >
> > * Rafael J. Wysocki <rjw@...k.pl> wrote:
> >
> > > On Tuesday 24 February 2009, Linus Torvalds wrote:
> > > >
> > > > On Tue, 24 Feb 2009, Rafael J. Wysocki wrote:
> > > > >
> > > > > > The only safe way on x86 to shutdown a level triggered ioapic irq
> > > > > > outside of irq context is for the driver to program the hardware to
> > > > > > not generate an irq.
> > > > >
> > > > > Well, that changes things quite a bit, because it means we can't change the
> > > > > suspend-resume sequence in a way we thought we could without fixing all
> > > > > drivers first, but this is exactly what we'd like to avoid by changing the
> > > > > core.
> > > >
> > > > Calling "disable_irq()" is perfectly fine.
> > > >
> > > > What is not possible on that broken IO-APIC (among other
> > > > things) is to actually turn the interrupts off at the apic
> > > > (ie the whole ->shutdown() thing). But that's not what we
> > > > even want to do. What we care about is just disabling the
> > > > interrupt from a drievr perspective.
> > > >
> > > > IOW, the patches I have seen are fine, and all the comments
> > > > from Eric are just confusion about what we want done.
> > >
> > > Ah, OK. Thanks for the explanation, I got confused too.
> > >
> > > > WE DO NOT WANT TO TURN OFF THE IO-APIC. That may or may
> > > > happen later, but that's totally unrelated to this whole
> > > > "suspend_device_irq()" thing.
> > >
> > > Yeah.
> >
> > We definitely dont want to turn off x86 IO-APICs - the timer IRQ
> > goes via one of them.
>
> No, we don't. At least not at this point.
>
> BTW, appended is the current (3rd) version of the $subject patch with some
> of your comments taken into account. In particular, I did the following:
> - moved [suspend|resume]_device_irqs() to a separate file (pm.c)
> - fixed interrupt.h so that their headers are at a better place
> - made enable_irq() clear IRQ_SUSPENDED
> - made device_power_down() and device_power_up() call
> suspend_device_irqs() and resume_device_irqs(), respectively, which
> simplified the callers quite a bit (it changed the Xen code ordering, though,
> but I _think_ it still should work).
>
> Please have a look.
Looks good, thanks Rafael!
Acked-by: Ingo Molnar <mingo@...e.hu>
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists