lkml.org 
[lkml]   [2011]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 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;
    > }
    >
    >
    >


    \
     
     \ /
      Last update: 2011-05-05 10:29    [W:0.023 / U:0.772 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site