lkml.org 
[lkml]   [2020]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH] x86/PCI: Convert force_disable_hpet() to standard quirk
    Date
    Feng,

    On Fri, Nov 27 2020 at 14:11, Feng Tang wrote:
    > On Fri, Nov 27, 2020 at 12:27:34AM +0100, Thomas Gleixner wrote:
    >> On Thu, Nov 26 2020 at 09:24, Feng Tang wrote:
    >> Yes, that can happen. But OTOH, we should start to think about the
    >> requirements for using the TSC watchdog.
    >>
    >> I'm inclined to lift that requirement when the CPU has:
    >>
    >> 1) X86_FEATURE_CONSTANT_TSC
    >> 2) X86_FEATURE_NONSTOP_TSC
    >
    >> 3) X86_FEATURE_NONSTOP_TSC_S3
    > IIUC, this feature exists for several generations of Atom platforms,
    > and it is always coupled with 1) and 2), so it could be skipped for
    > the checking.

    Yes, we can ignore that bit as it's not widely available and not
    required to solve the problem.

    >> 4) X86_FEATURE_TSC_ADJUST
    >>
    >> 5) At max. 4 sockets
    >>
    >> The only reason I hate to disable HPET upfront at least during boot is
    >> that HPET is the best mechanism for the refined TSC calibration. PMTIMER
    >> sucks because it's slow and wraps around pretty quick.
    >>
    >> So we could do the following even on platforms where HPET stops in some
    >> magic PC? state:
    >>
    >> - Register it during early boot as clocksource
    >>
    >> - Prevent the enablement as clockevent and the chardev hpet timer muck
    >>
    >> - Prevent the magic PC? state up to the point where the refined
    >> TSC calibration is finished.
    >>
    >> - Unregister it once the TSC has taken over as system clocksource and
    >> enable the magic PC? state in which HPET gets disfunctional.
    >
    > This looks reasonable to me.
    >
    > I have thought about lowering the hpet rating to lower than PMTIMER, so it
    > still contributes in early boot phase, and fades out after PMTIMER is
    > initialised.

    Not a good idea. pm_timer is initialized before the refined calibration
    finishes.

    Thanks,

    tglx

    \
     
     \ /
      Last update: 2020-11-30 20:23    [W:2.858 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site