lkml.org 
[lkml]   [2010]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Greatly improve TSC calibration using a delayed workqueue
    Hi John,

    > + /*
    > + * Since the timer is started early in boot, we may be
    > + * delayed the first time we expire. So set the timer
    > + * again once we know timers are working.
    > + */
    > + if (tsc_start == -1) {
    > + /*
    > + * Only set hpet once, to avoid mixing hardware
    > + * if the hpet becomes enabled later.
    > + */
    > + hpet = is_hpet_enabled();
    > + schedule_delayed_work(&tsc_irqwork, HZ);
    > + tsc_start = tsc_read_refs(&ref_start, hpet);
    > + return;
    > + }
    > +
    > + tsc_stop = tsc_read_refs(&ref_stop, hpet);

    The HPET init code stops, starts the HPET. I think you need some
    way to protect against that here, e.g. a variable and rearming the
    timer if it's true.

    Another issue may be races against suspend, but that may be too
    obscure.

    I also worry a bit about NMIs etc. running later during this
    and messing up the measurement, but I guess the longer period
    makes up for it.

    The rest of the patch looks ok to me.

    -Andi


    \
     
     \ /
      Last update: 2010-11-07 21:45    [W:4.335 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site