Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756091AbYLJRO0 (ORCPT ); Wed, 10 Dec 2008 12:14:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754800AbYLJROS (ORCPT ); Wed, 10 Dec 2008 12:14:18 -0500 Received: from smtp1.linux-foundation.org ([140.211.169.13]:41584 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753567AbYLJROR (ORCPT ); Wed, 10 Dec 2008 12:14:17 -0500 Date: Wed, 10 Dec 2008 09:13:30 -0800 (PST) From: Linus Torvalds X-X-Sender: torvalds@localhost.localdomain To: Matthew Garrett cc: Frans Pop , Ingo Molnar , lenb@kernel.org, "Rafael J. Wysocki" , Greg KH , jbarnes@virtuousgeek.org, Linux Kernel Mailing List , tiwai@suse.de, Andrew Morton Subject: Re: "APIC error on CPU1: 00(40)" during resume (was: Regression from 2.6.26: Hibernation (possibly suspend) broken on Toshiba R500) In-Reply-To: <20081210165252.GA13041@srcf.ucam.org> Message-ID: References: <200812020320.31876.rjw@sisk.pl> <200812101506.45691.elendil@planet.nl> <200812101705.18899.elendil@planet.nl> <20081210165252.GA13041@srcf.ucam.org> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1020 Lines: 30 On Wed, 10 Dec 2008, Matthew Garrett wrote: > On Wed, Dec 10, 2008 at 08:26:37AM -0800, Linus Torvalds wrote: > > > So it looks like we don't reprogram the APIC -at-all- on secondary CPU's. > > > > What am I missing? > > We unplug all CPUs except the boot one at suspend time. Does the APIC > get reprogrammed when they're replugged on resume? Ahh, indeed. That ends up doing setup_local_APIC() in smp_callin(). I wonder if we should do that from apic_resume() too - instead of saving any state we could probably just re-initialize it. The setup_local_APIC() function also seems to be a lot more careful than "resume_apic()" is about ordering (well, at least it has _comments_ on the ordering), and it does things like ack'ing all pending irq's. Hmm. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/