From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760395AbZFNNRs (ORCPT ); Sun, 14 Jun 2009 09:17:48 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755414AbZFNNRk (ORCPT ); Sun, 14 Jun 2009 09:17:40 -0400 Received: from www.tglx.de ([62.245.132.106]:42237 "EHLO www.tglx.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753233AbZFNNRk (ORCPT ); Sun, 14 Jun 2009 09:17:40 -0400 Date: Sun, 14 Jun 2009 15:17:25 +0200 (CEST) From: Thomas Gleixner To: "Pallipadi, Venkatesh" cc: "Benjamin S." , "Rafael J. Wysocki" , Ingo Molnar , LKML , "js@sig21.net" , Jesse Barnes , pm list , Linux PCI , Matthew Wilcox Subject: RE: 2.6.30 enabling cpu1 on resume fails after suspend to memory In-Reply-To: <7E82351C108FA840AB1866AC776AEC4669244187@orsmsx505.amr.corp.intel.com> Message-ID: References: <20090614120950.116536fa@pluto-lenny.milky.way> <200906141400.27331.rjw@sisk.pl> <200906141415.16949.rjw@sisk.pl> <20090614143708.32ec250c@pluto-lenny.milky.way> <7E82351C108FA840AB1866AC776AEC4669244187@orsmsx505.amr.corp.intel.com> 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 On Sun, 14 Jun 2009, Pallipadi, Venkatesh wrote: > >On Sun, 14 Jun 2009, Benjamin S. wrote: > > > >This is odd as well: > >> CPU0 CPU1 > >> 0: 42 1 IO-APIC-edge timer > >> 24: 4830 0 HPET_MSI-edge hpet2 > >> LOC: 42 5070 Local timer interrupts > > > >So we set up only one hpet channel for CPU0 and CPU1 uses the local > >timer interrupt. Need to look at that as well. > > > > Logic in percpu HPET is something like this. > > - Number of per cpu HPET channels = total number of HPET channels - > 1 (global HPET) - 1 (legacy RTC replacement) - 1 (reserved for > /dev/hpet). > > - So, this number is assigned one per CPU and remaining CPUs use > APIC timer + broadcast logic > > Looks like there is a slight problem with the above though. We > should start such per cpu assignment from CPU 1 instead of CPU 0, > when number of HPET channels is less than number of CPUs. Will send > a patch for that. But, this suspend resume problem should not be due > to the percpu HPET logic. It will be good to try with hpet=disable > to make sure... Benjamin just confirmed that. The logic in disable_device_interrupts() already skips interrupts marked with IRQF_TIMER, but I suspect that the hpet/MSI interupts are not marked that way. Thanks, tglx