Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937212AbZLHRLN (ORCPT ); Tue, 8 Dec 2009 12:11:13 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S937197AbZLHRLL (ORCPT ); Tue, 8 Dec 2009 12:11:11 -0500 Received: from e3.ny.us.ibm.com ([32.97.182.143]:42031 "EHLO e3.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937193AbZLHRLK (ORCPT ); Tue, 8 Dec 2009 12:11:10 -0500 Subject: RE: timer interrupt stucks using tickless kernel From: john stultz To: Ioannis Kyriakopoulos Cc: linux-kernel@vger.kernel.org In-Reply-To: References: <1f1b08da0912071330i35808790r554f7a3a8d712ca7@mail.gmail.com> <1260232212.6255.33.camel@localhost.localdomain> <1f1b08da0912071805m7bbd65cdhfcf9284379bbe23c@mail.gmail.com> Content-Type: text/plain Date: Tue, 08 Dec 2009 09:11:06 -0800 Message-Id: <1260292266.3483.7.camel@work-vm> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2542 Lines: 67 On Tue, 2009-12-08 at 03:38 +0000, Ioannis Kyriakopoulos wrote: > >> The system tick is > >> generated by IRQ0 which in my second configuration should be triggered > >> by HPET (because I have enabled the HPET timer support). > > > >System tick? > > I mean the timer interrupt that drives the scheduler. Right, so on SMP that's generally what the lapic timer does for each cpu. On UP, either the irq0 or the lapic (if available) can be used for this. > >> Also, if the > >> interrupts generated by LAPIC are incremented at HZ freq, why the > >> interrupts generated by the timer (IRQ0) not happen at the same frequency > >> as well? > > > >Why take two interrupts when you could only take one? > > That's exactly my question. Why we have both LAPIC and timer interrupts? If > the LOC are used for driving the scheduler then for what the "timer" > interrupts > (IRQ0) are used? > > 0: 157 IO-APIC-edge timer > LOC: 1865130 Local timer interrupts Well, it used to be there were lapic timers for each cpu, and we still took an irq0 interrupt to do the timekeeping accumulation / jiffies increment. However, now we usually setup the system with the int0 timer, and then switch over to the lapic if possible. Additionally, there are some cases where the hardware lapic will halt in deep idle modes, so in those cases, the irq0 timer must be used to pull a cpu out of idle, which then can broadcast an IPI the other cpus to wake them up. > >> Furthermore, we don't have an answer on why IO-APIC is used at the time > >> that it is disabled on kernel configurations. The fact that I have > enabled > >> LAPIC timer support doesn't justify the use of the IO-APIC controller > >> by each own. > > > >Honestly, I dunno on the details there. If CONFIG_X86_IO_APIC=n, it > >looks like you should not be seeing the IO-APIC-* names in > >/proc/interrupts. Are you sure your booting the right kernel, or > >CONFIG_X86_IO_APIC is actally on in your .config? > > I try to uncheck CONFIG_X86_IO_APIC manually because it's not appeared under > Xconcig/menuconfig but it re-checked automatically when it tries to build. > In order to disable it permanently, should I also uncheck all the configs > that depend on it? Yes, if you want to use a system without it. thanks -john -- 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/