RE: [RFC][PATCH] i386 x86-64 Eliminate Local APIC timer interrupt

From: Protasevich, Natalie
Date: Sat Apr 30 2005 - 14:42:02 EST


> On Fri, 29 Apr 2005, Venkatesh Pallipadi wrote:
>
> > Proposed Fix:
> > Attached is a prototype patch, that tries to eliminate the
> dependency
> > on local APIC timer for update_process_times(). The patch
> gets rid of
> > Local APIC timer altogether. We use the timer interrupt (IRQ 0)
> > configured in broadcast mode in IOAPIC instead (Doesn't
> work with 8259).
> > As changing anything related to basic timer interrupt is a
> little bit
> > risky, I have a boot parameter currently ("useapictimer") to switch
> > back to original local APIC timer way of doing things.
>
> I'm rather reluctant to advocate the broadcast scheme as i
> can see it breaking on a lot of systems, e.g. SMP systems
> which use i8259 (as you noted), IBM x440 and ES7000. If
> anything the default mode should be APIC timer and have a
> parameter to disable it. Regarding things like variable timer
> ticks, reprogramming the PIT is slow, and using it
> extensively for such sounds like a step in the wrong
> direction. Is this feature/bug going to proliferate amongst
> newer processor local APICs?
>
> Thanks,
> Zwane

I did preliminary testing of the patch applied to the rc3 on the IA-32
ES7000, and it booted fine, without the useapictimer boot option. As
Zwane pointed out correctly, ES7000 doesn't handle IRQ broadcast. The
kernel by-passed the non-apic timer option (chose pin1 in check_timer)
and came up safely with local APIC timer.
Thanks,
--Natalie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/