Re: 2.6.23-rc4-mm1 and -rc6-mm1: boot failure on HP nx6325, related to clockevents

From: Rafael J. Wysocki
Date: Tue Sep 25 2007 - 15:53:18 EST


On Tuesday, 25 September 2007 15:17, Thomas Gleixner wrote:
> On Tue, 2007-09-25 at 15:16 +0200, Rafael J. Wysocki wrote:
[--snip--]
>
> I start to get desperate. Below is a patch, which moves the apic timer
> disable check after the calibration routine. Can you please apply on top
> of -hrt and add "noapictimer" to the command line ? Does it boot ?

2.6.23-rc7 with patch-2.6.23-rc7-hrt1.patch and the patch below applied boots
with noapictimer and doesn't boot without it.

Also, attached is the output of

# cat /proc/interrupts; sleep 10; cat /proc/interrupts

from the current mainline.

Greetings,
Rafael


> Index: linux-2.6.23-rc7/arch/x86_64/kernel/apic.c
> ===================================================================
> --- linux-2.6.23-rc7.orig/arch/x86_64/kernel/apic.c 2007-09-24 20:30:00.000000000 +0200
> +++ linux-2.6.23-rc7/arch/x86_64/kernel/apic.c 2007-09-25 15:05:32.000000000 +0200
> @@ -927,6 +927,7 @@ static void __init calibrate_APIC_clock(
>
> void __init setup_boot_APIC_clock (void)
> {
> +#if 0
> /*
> * The local apic timer can be disabled via the kernel commandline.
> * Register the lapic timer as a dummy clock event source on SMP
> @@ -940,7 +941,7 @@ void __init setup_boot_APIC_clock (void)
> setup_APIC_timer();
> return;
> }
> -
> +#endif
> printk(KERN_INFO "Using local APIC timer interrupts.\n");
> calibrate_APIC_clock();
>
> @@ -949,11 +950,13 @@ void __init setup_boot_APIC_clock (void)
> * PIT/HPET going. Otherwise register lapic as a dummy
> * device.
> */
> - if (nmi_watchdog != NMI_IO_APIC)
> + if (!disable_apic_timer && nmi_watchdog != NMI_IO_APIC)
> lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
> +#if 0
> else
> printk(KERN_WARNING "APIC timer registered as dummy,"
> " due to nmi_watchdog=1!\n");
> +#endif
>
> setup_APIC_timer();
> }
>
>
>
>

--
"Premature optimization is the root of all evil." - Donald Knuth
albercik:~ # cat /proc/interrupts; sleep 10; cat /proc/interrupts
CPU0 CPU1
0: 62489 0 local-APIC-edge timer
1: 3 232 IO-APIC-edge i8042
8: 0 0 IO-APIC-edge rtc
12: 1 147 IO-APIC-edge i8042
14: 15 1947 IO-APIC-edge ide0
16: 193 14151 IO-APIC-fasteoi sata_sil, HDA Intel
19: 76 43153 IO-APIC-fasteoi ohci_hcd:usb1, ehci_hcd:usb2, ohci_hcd:usb3
20: 0 4 IO-APIC-fasteoi ohci1394, tifm_7xx1, yenta, sdhci:slot0
21: 7 172 IO-APIC-fasteoi acpi
NMI: 0 0
LOC: 62454 62082
ERR: 0
CPU0 CPU1
0: 64993 0 local-APIC-edge timer
1: 3 233 IO-APIC-edge i8042
8: 0 0 IO-APIC-edge rtc
12: 1 147 IO-APIC-edge i8042
14: 15 2037 IO-APIC-edge ide0
16: 194 14265 IO-APIC-fasteoi sata_sil, HDA Intel
19: 77 45155 IO-APIC-fasteoi ohci_hcd:usb1, ehci_hcd:usb2, ohci_hcd:usb3
20: 0 4 IO-APIC-fasteoi ohci1394, tifm_7xx1, yenta, sdhci:slot0
21: 7 176 IO-APIC-fasteoi acpi
NMI: 0 0
LOC: 64958 64586
ERR: 0
albercik:~ #