On Wed, Nov 25 2020 at 13:13, Bjorn Helgaas wrote: > On Wed, Nov 25, 2020 at 01:46:23PM +0100, Thomas Gleixner wrote: >> Now the more interesting question is why this needs to be a PCI quirk in >> the first place. Can't we just disable the HPET based on family/model >> quirks? > > You mean like a CPUID check or something? I'm all in favor of doing > something that doesn't depend on PCI. The reason why these are PCI quirks is that the HPET is not part of the CPU core. It's usually part of 00:00:0 (aka. host bridge) and the legacy mess which resides there. OTOH that thing is integrated into the actual chip nowadays and these quirks are platform quirks, so the CPUID and the PCI vendor/device codes should be the same for a particular model. But what do I know. This whole platform/cpuid mess is inpenetrable even for people who have access to the Intel internal documentation... But, the point is that HPET does not provide any value on contemporary CPUs assumed that Intel finally decided that TSC and the TSC deadline timer are crucial system components along with the ability to get the correct frequency of these beasts from firmware/cpuid. So if parts of a particular chip generation, which we can determine by CPUID (family, model) has issues with HPET, then there is no value in preserving HPET for the N out of M submodels which are not affected even if we can differentiate them by the host bridge device id. But as I said above, what do I know. The Intel wizards which might have better insight into this should speak up and come forth with objections. Otherwise I just go and disable HPET support for the CPU models which are covered by these PCI quirks today. Ideally we can just disable it for anything more modern as well, but of course that requires that future devices have proper frequency enumeration and Intel prevents the OEMs to screw that up with their "value add" BIOS/SMM machinery. Hope dies last... Thanks, tglx