Messages in this thread | | | Date | Thu, 5 May 2011 10:25:46 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: Long timeout when booting >= 2.6.38 |
| |
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@us.ibm.com> > > 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; > } > > >
| |