Re: [patch 00/22] high resolution timers / dynamic ticks - V3

From: Thomas Gleixner
Date: Thu Oct 05 2006 - 05:43:49 EST


On Thu, 2006-10-05 at 01:50 -0700, Andrew Morton wrote:
> The stock kernel shows a local-apic interrupt rate of 18Hz (HZ=250). Other
> times I've seen 13Hz.
>
> With this patch series applied, disabling the local apic in config fixes
> things up (using the PIT).
>
> With the stock kernel and SMP, the system is slow, but not _as_ slow.
> Bootup takes maybe twice as long, but not all week. This time the local
> APIC interrupt rate is 8Hz, so something peculiar is happening here -
> nothing is proportional.

The stock SMP kernel increases jiffies in IRQ0, while HIGH_RES=y
emulates the tick via the lapic timer. If you disable lapic, hrtimer
emulates via PIT in the HIGH_RES=y case.

> It'd be nice to fix the local apic rather than working around it. Any idea
> why it's doing this?

Not at all. Can you please apply the patch below and add "apic=verbose"
to the commandline ? This should give use some hint.

Watch out for "calibrating APIC timer ..." in the boot messages.

tglx

Index: linux-2.6.18-mm3/arch/i386/kernel/apic.c
===================================================================
--- linux-2.6.18-mm3.orig/arch/i386/kernel/apic.c 2006-10-04 19:11:08.000000000 +0200
+++ linux-2.6.18-mm3/arch/i386/kernel/apic.c 2006-10-05 11:33:04.000000000 +0200
@@ -1147,7 +1147,7 @@ static int __init calibrate_APIC_clock(v
lapic_clockevent.min_delta_ns =
clockevent_delta2ns(0xF, &lapic_clockevent);

- apic_printk(APIC_VERBOSE, "..... tt1-tt2 %ld\n", tt1 - tt2);
+ apic_printk(APIC_VERBOSE, "..... tt1: %ld tt2: %ld\n", tt1, tt2);
apic_printk(APIC_VERBOSE, "..... mult: %ld\n", lapic_clockevent.mult);
apic_printk(APIC_VERBOSE, "..... calibration result: %ld\n", result);



-
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/