From: john stultz <johnstul@us.ibm.com>
To: Ioannis Kyriakopoulos <johnkyr83@hotmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: RE: timer interrupt stucks using tickless kernel
Date: Tue, 08 Dec 2009 09:11:06 -0800 [thread overview]
Message-ID: <1260292266.3483.7.camel@work-vm> (raw)
In-Reply-To: <SNT111-DS23BF388D25AEAA05A8CB70A78F0@phx.gbl>
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
prev parent reply other threads:[~2009-12-08 17:11 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Acp3UXhD1R6mbV5yTGykTs+HAU6bQg==>
2009-12-07 15:25 ` timer interrupt stucks using tickless kernel Ioannis Kyriakopoulos
2009-12-07 16:06 ` Christoph Lameter
2009-12-07 18:22 ` Ioannis Kyriakopoulos
2009-12-07 21:30 ` john stultz
2009-12-08 0:18 ` Ioannis Kyriakopoulos
2009-12-08 0:30 ` john stultz
2009-12-08 1:33 ` Ioannis Kyriakopoulos
2009-12-08 2:05 ` john stultz
2009-12-08 3:38 ` Ioannis Kyriakopoulos
2009-12-08 17:11 ` john stultz [this message]
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=1260292266.3483.7.camel@work-vm \
--to=johnstul@us.ibm.com \
--cc=johnkyr83@hotmail.com \
--cc=linux-kernel@vger.kernel.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