
email at christianhoffmann
May 5, 2011, 10:47 AM
Post #24 of 29
(1272 views)
Permalink
|
On 05/05/2011 10:25 AM, Thomas Gleixner wrote: > On Wed, 4 May 2011, john stultz wrote: > >> On Wed, 2011-05-04 at 09:31 +0200, Christian Hoffmann wrote: >>> In fact, switching to acpi_pm doesn't seem to work: >>> >>> $ dmesg | grep clock >>> >>> [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-2.6.39-rc5-ch-broken+ >>> root=/dev/mapper/vg-root ro quiet splash vt.handoff=7 clocksource=acpi_pm >>> [ 0.000000] Kernel command line: >>> BOOT_IMAGE=/vmlinuz-2.6.39-rc5-ch-broken+ root=/dev/mapper/vg-root ro >>> quiet splash vt.handoff=7 clocksource=acpi_pm >>> [ 0.000000] hpet clockevent registered >>> [ 1.413835] Switching to clocksource hpet >>> [ 1.420762] Override clocksource acpi_pm is not HRT compatible. >>> Cannot switch while in HRT/NOHZ mode >>> [ 147.940143] Refined TSC clocksource calibration: 2809.409 MHz. >>> [ 147.940147] Switching to clocksource tsc >> >> So I think I've sorted this out. >> >> The watchdog code is what enables CLOCK_SOURCE_VALID_FOR_HRES, but we >> actually end up selecting the clocksource before we enqueue it into the >> watchdog list, so that's why we see the warning. >> >> I suspect the following will resolve this detail. > > It does. Good catch! > >> Signed-off-by: John Stultz<johnstul [at] us> >> >> diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c >> index 6519cf6..0e17c10 100644 >> --- a/kernel/time/clocksource.c >> +++ b/kernel/time/clocksource.c >> @@ -685,8 +685,8 @@ int __clocksource_register_scale(struct clocksource *cs, u32 scale, u32 freq) >> /* Add clocksource to the clcoksource list */ >> mutex_lock(&clocksource_mutex); >> clocksource_enqueue(cs); >> - clocksource_select(); >> clocksource_enqueue_watchdog(cs); >> + clocksource_select(); >> mutex_unlock(&clocksource_mutex); >> return 0; >> } >> @@ -706,8 +706,8 @@ int clocksource_register(struct clocksource *cs) >> >> mutex_lock(&clocksource_mutex); >> clocksource_enqueue(cs); >> - clocksource_select(); >> clocksource_enqueue_watchdog(cs); >> + clocksource_select(); >> mutex_unlock(&clocksource_mutex); >> return 0; >> } >> I can now select clocksource=acpi_pm as kernel parameter. The boot still hangs after "MSI quirk detected...", but the timestamps in dmesg don't show the jump anymore. [ 1.426107] NET: Registered protocol family 1 [ 1.426162] pci 0000:00:01.0: MSI quirk detected; subordinate MSI disabled [ 2.300212] pci 0000:01:05.0: Boot video device [ 2.300226] PCI: CLS 64 bytes, default 64 Full dmesg is here: http://pastebin.com/raw.php?i=3Fctvsrp Rgds, Chris -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo [at] vger More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|